相关疑难解决方法(0)

如何在 C# 中读取 .xls 和 .xlsx 和 .xlsm 文件

我使用了 openfiledialog 并对其进行过滤以获取:.xls 和 .xlsx 和 .xlsm 文件。但我不知道接下来要做什么,我用 firstName 和 lastName 构建了一个工人类,我想从 excel 文件中获取数据并将其放入变量中。

这是我的 openfiledialog 代码:

 private void ExcelLoad_Click(object sender, EventArgs e)
    {
        int size = -1;
        openFileDialog1.Title = "Browse Excel file";
        openFileDialog1.Filter = "Excel Files|*.xls;*.xlsx;*.xlsm";
        DialogResult result = openFileDialog1.ShowDialog(); // Show the dialog.
        if (result == DialogResult.OK) // Test result.
        {
                string file = openFileDialog1.FileName;
                try
                {
                    string text = File.ReadAllText(file);
                    size = text.Length;
                }
                catch (IOException)
                {
                }
        }
        Console.WriteLine(size); // <-- Shows file size in debugging …
Run Code Online (Sandbox Code Playgroud)

c# excel

3
推荐指数
1
解决办法
2万
查看次数

在C#中将Excel工作表的内容写入控制台时,输出不是人类可读的格式

我正在尝试阅读excel表并向控制台显示内容.代码在这里

  FileStream fileStream = new FileStream(@"E:\USERS\MyWorkbook.xlsx", FileMode.Open, FileAccess.Read);
  byte[] byteCode = new byte[fileStream.Length];
  fileStream.Read(byteCode, 0, (int)fileStream.Length);            
  foreach (var byteValue in byteCode)
  {
      Console.Write(Convert.ToChar(byteValue));
  }
  Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)

输出是

PK♥♦♠!b??h ^☺?♦!☻[Content_Types] .xml¢♦☻(☻

¬?ENA0►E÷HüCä-Jܲ5í?Ç↕*Q> AA?ƪc[?iiÿ??û►B¡§j7±↕IÜ{2ñIh²nm??Æ»R♀?? EAU ^←7 /> AC "%¿↨↓?rZYï←@ 1↓__?f??q·AR4DáAJ¬→h§▬>?a?UÇV◄߯1♀ªZ"9EUAàNV_◄8EcO►aÑ!Oji){^óa-I♦?"{Ü▬v^¥P!XS)bR1rú?K_s(, 3O▬▬_§ïßeÖ↔♦»ß1æ►@(?a?sí?►[í?☼öB·LA?F←I↔"fKlk↑ - ¿$♣?A pN $å

它出什么问题了?

c# excel file

3
推荐指数
1
解决办法
1622
查看次数

将Excel文件上传到Web API

我正在尝试将excel文件及其内容上传到我的WebApi和DO STUFF。我已经完成了通过上传按钮发送文件的extJs部分。(下面的代码)

我的问题是我不知道如何构建webApi部分来处理excel文件。我猜我必须有一个HttpPost。

假WebApi:

public string SampleUploadFile()
{
    return _repo.UploadFile();
}
Run Code Online (Sandbox Code Playgroud)

Extjs代码:

xtype: 'form',
//renderTo: 'fi-form', //(5)
fileUpload: true, //(1)
width: 500,
frame: true,
title: 'Position Sheet Upload Form',
bodyPadding: '10 10 0',
//bodyStyle: 'padding: 10px 10px 0 10px;',

defaults: {
    anchor: '100%',
    allowBlank: false,
    msgTarget: 'side',
    labelWidth: 50
},

//labelWidth: 50,
items: [{
    xtype: 'fileuploadfield',
    emptyText: 'Select an image',
    fieldLabel: 'Image',
    name: 'file', //(2)
    buttonText: 'Choose a file'
}],
buttons: [{
    text: 'Save',
    handler: function () {
        if (this.up('form').getForm().isValid()) …
Run Code Online (Sandbox Code Playgroud)

excel extjs asp.net-web-api

3
推荐指数
1
解决办法
4993
查看次数

在C#中读取Excel数据和单元格格式

我正在寻找一个允许使用C#读取Excel文档的库,但我需要能够读取单元格格式以及电子表格中的数据。我发现这个有用的问题列出了许多用于读取Excel文档的替代方法,但是此处提供的许多解决方案仅允许读取电子表格的内容,而不允许读取单元格属性(例如,字体,背景色等)。但是,对于我的特定问题,我需要阅读一个包含很多单元格格式的文档,并且我需要能够读取此格式信息。

我需要阅读的Excel文档是xls文档,因此在此阶段不需要阅读xlsx。我正在寻找无需安装Excel就可以在服务器上使用的库,因此它必须是独立的解决方案,最好是开源的。

有没有人有从xls文档中读取单元格格式信息的经验,并且可以建议一个有助于完成此任务的库?

更新:

我正在使用ClosedXml,因为从我读到的内容来看,它似乎提供了我需要的功能。我正在使用以下示例代码:

http://closedxml.codeplex.com/wikipage?title=查找%20和%20extracting%20the%20data&referringTitle =文档

并能够毫无问题地读取Excel文档的内容。我仅使用此代码中的Categories示例,但已将两个categoryname单元格格式化为具有背景色。现在,我要使用ClosedXml进行的操作是确定:

  • 如果在特定单元格上定义了填充背景色

  • 如果已定义,则获取Fill的颜色(十六进制值即可)

这是我尝试使用的一些代码:

// Get all categories
while (!categoryRow.Cell(coCategoryId).IsEmpty())
{
    IXLCell categoryName = categoryRow.Cell(coCategoryName);
    try
    {
        categories.Add(categoryName.GetString() + " " + categoryName.Style.Fill.BackgroundColor.Color.ToHex());
    }
    catch
    {
        categories.Add(categoryName.GetString() + " None");
    }
    categoryRow = categoryRow.RowBelow();
}
Run Code Online (Sandbox Code Playgroud)

但是代码

categoryName.Style.Fill.BackgroundColor.Color.ToHex()
Run Code Online (Sandbox Code Playgroud)

总是抛出期望“词典中不存在给定的键”。,即使对于确实定义了背景色的单元格也是如此。任何人都有任何想法如何与ClosedXml一起使用吗?

.net c# excel ms-office closedxml

1
推荐指数
1
解决办法
8832
查看次数

C#中更快的Excel文件访问

我的C#应用​​程序从excel文件中获取了大量数据并对其进行处理,然后将其写回文件.

问题是从Excel文件加载数据时,需要一些时间(大约7000字段的Excel需要30秒)

我想让它更快,是否有任何方法可以在相当长的时间内使其更快?

我用来获取数据的代码是:

streamReader = new StreamReader(@"ExcelPath.txt");
string path = streamReader.ReadLine();

//An Excel Application ==(contains)==> [Many] Excel WorkBook ==(contains)==>[Many] Excel WorkSheets==(contains)==>[Many] Ranges
Microsoft.Office.Interop.Excel.Application excelapp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook myworkbook = excelapp.Workbooks.Open(path, 0, false, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true);

Microsoft.Office.Interop.Excel.Sheets myworksheets = myworkbook.Worksheets;
Microsoft.Office.Interop.Excel.Worksheet myworksheet =myworksheets.get_Item(1);
Microsoft.Office.Interop.Excel.Range range = myworksheet.UsedRange;

string[] data = new string[range.Rows.Count];
int start = 0;
for (start = 3; start < range.Rows.Count; start++)
{
    Microsoft.Office.Interop.Excel.Range myrange = myworksheet.get_Range("O" + start.ToString(), System.Reflection.Missing.Value); …
Run Code Online (Sandbox Code Playgroud)

.net c# excel optimization performance

0
推荐指数
1
解决办法
1701
查看次数