相关疑难解决方法(0)

从Excel读取(范围到多维数组)C#

如何从Excel工作表中读取并将标记的选择(区域)加载到多维数组中?Excel中的列本身可以是多维数组,因为它不仅包含一个值.

现在的想法(不确定这是好还是坏)是在所有Excel.Area(选定字段)中进行for循环,并将该字段的内容添加到多维数组中.由于多维数组的类型为object [,],因此非泛型,因此没有方便的add()方法.所有这些都需要手动完成.

不知道这种方法是否合适,或者是否可以更有效地完成?

c# excel multidimensional-array

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

Excel工作簿 - 从C#读取大幅慢?

我正在尝试从excel工作簿中读取数据,并注意到需要很长时间才能阅读3560行和7列的工作表,大约需要1分17秒.我所做的只是遍历整个工作表并将值存储在列表中.

这是正常的,还是我做错了什么?

 static void Main(string[] args)
    {
        List<string> testList = new List<string>();
        Excel.Application excelApp = new Excel.Application();
        Excel.Workbook workbook = excelApp.Workbooks.Open(@"C:\Users\rnewell\Desktop\FxData.xlsx");
        Excel.Worksheet worksheet = workbook.Sheets[1];
        Excel.Range range = worksheet.UsedRange;

        int rowCount = range.Rows.Count;
        int colCount = range.Columns.Count;



        int rowCounter = 1;
        int colCounter = 1;

        while (rowCounter < rowCount)
        {
            colCounter = 1;
            while (colCounter <= colCount)
            {
                //Console.Write(range.Cells[rowCounter, colCounter].Value2.ToString() + " ");
                testList.Add(range.Cells[rowCounter, colCounter].Value2.ToString());
                colCounter++;
            }
            Console.WriteLine();
            rowCounter++;


        }



        Console.ReadKey();
        excelApp.Workbooks.Close();


    }
Run Code Online (Sandbox Code Playgroud)

c# excel

5
推荐指数
2
解决办法
6215
查看次数

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
查看次数