C#读取多行Excel文件

C#读取多行Excel文件,c#,excel,C#,Excel,我是c#的新手,我正在尝试制作一个简单的程序,从excel文件中读取所有行,并将它们放入数组或c#中的其他数据存储中,以便对这些数据进行操作 使用c#和大型excel文件(大约200000行)时,最好的策略是什么 只需从excel文件逐行复制到c#中的数据集,然后使用循环操作数据集 你能举出什么好例子吗 感谢您使用Microsoft.Office.Interop.Excel,您可以将其添加为汇编参考,我将其放在Microsoft Office core下,它与Excel非常配合 例如: 您的ex

我是c#的新手,我正在尝试制作一个简单的程序,从excel文件中读取所有行,并将它们放入数组或c#中的其他数据存储中,以便对这些数据进行操作

使用c#和大型excel文件(大约200000行)时,最好的策略是什么

只需从excel文件逐行复制到c#中的数据集,然后使用循环操作数据集

你能举出什么好例子吗


感谢您使用Microsoft.Office.Interop.Excel,您可以将其添加为汇编参考,我将其放在Microsoft Office core下,它与Excel非常配合

例如:

您的excel路径

Excel.Workbook工作簿=app.Workbooks.Open(@“yourfilepathandname.xls”)
int rCount=XLRangeTable.Rows.Count;
int cCount=XLRangeTable.Columns.Count;
对象[,]表=XLRangeTable.Value2;

对于(int i=1;i使用Microsoft.Office.Interop.Excel,您可以将其添加为汇编参考,我将其标在Microsoft Office core下,它与Excel非常配合

例如:

您的excel路径

Excel.Workbook工作簿=app.Workbooks.Open(@“yourfilepathandname.xls”)
int rCount=XLRangeTable.Rows.Count;
int cCount=XLRangeTable.Columns.Count;
对象[,]表=XLRangeTable.Value2;

对于(int i=1;i您可能希望使用
Interop.Office.Excel
库逐行阅读。了解
Range
我会查看EPPlus开源库,看看它是否符合您的要求。使用它比使用Interop好得多。有没有办法不用导入新库就可以做到这一点?只需使用standart c#libs?您可以使用COM互操作库从Excel中读取,但使用起来不是很好。@Darren Young您有如何执行的示例代码段吗?您可能希望使用
interop.Office.Excel
库逐行读取。了解
Range
我会查看EPPlus开源库,看看它是否符合您的要求。它使用比interop好得多。有没有不导入新库的方法?只需使用standart c#libs?您可以使用COM interop库从Excel中读取,但它们使用起来不是很好。@Darren Young您是否有一个示例代码段来说明如何操作?谢谢您的快速回答,几点注释:您所说的是什么意思g“将其用作汇编引用”?在您给出的代码中,我正在处理的xl文件在哪里?如果您在项目中向所提到的程序集“添加引用”,它应该变得清晰。有一个“打开的文件”函数,从那里您应该可以得到一个包含行/列的工作表。很抱歉,您必须按如下方式声明您的excel工作簿:excel.workbook workbook=app.Workbooks.Open(@“yourfilepathandname.xls”);@Neil-什么是“添加引用”?我知道“打开的文件”函数,虽然我不知道这里的哪个变量得到了文件?是XLRangeTable吗?@danijinji我已经更新了答案,如果你接受它,我将不胜感激。谢谢你的快速回答,几点注意:你说“将它用作汇编引用”是什么意思?在你给出的代码中,我正在处理的xl文件在哪里?如果你在你的项目中向提到的程序集“添加引用”,它应该变得清晰。有一个“打开的文件”函数,从那里您应该可以得到一个包含行/列的工作表。很抱歉,您必须按如下方式声明您的excel工作簿:excel.workbook workbook=app.Workbooks.Open(@“yourfilepathandname.xls”);@Neil-什么是“添加引用”?我知道“打开的文件”函数,虽然我不知道这里的哪个变量得到了文件?是XLRangeTable吗?@danijinji我已经更新了答案,如果你接受它,我将不胜感激
        Excel.Workbook workbook = app.Workbooks.Open(@"yourfilepathandname.xls")

        int rCount = XLRangeTable.Rows.Count;
        int cCount = XLRangeTable.Columns.Count;


        object[,] Table = XLRangeTable.Value2;

        for (int i = 1; i <= cCount; i++)
        {
            T.Columns.Add((string)Table[1, i]);
        }
        for (int j = 2; j <= rCount; j++)
        {
            DataRow R = T.NewRow();
            for (int i = 1; i <= cCount; i++)
            {
                R[i - 1] = Table[j, i];
            }
            T.Rows.Add(R);