在 C# 中使用 Microsoft.Office.Interop.Excel 从 excel 读取大量数据
我正在读取具有大量数据的 .xlsx 文件(C# 中)(使用 Microsoft.Office.Interop.Excel,几列的最大长度为 415000,该文件有 12 列,每列长度不同。我想找到特定列的长度例如 3,4,5
我试图做类似下面的事情(因为我没有看到任何直接函数来计算列的实际长度),但给出了没有足够的存储空间来完成此操作(HRESULT 的异常: 0x8007000E (E_OUTOFMEMORY)) 在第 1 行
int rows = excelWorksheet.UsedRange.Rows.Count;
Excel.Range excelRange = excelWorksheet.UsedRange;
object[,] valueArr = (object[,])excelRange.get_Value(Excel.XlRangeValueDataType.xlRangeValueDefault);.......1
int[] columnSize = new int[valueArr.Length / rows+1];
然后循环遍历列以查找每列的长度,直到其行有数据
有人可以帮忙吗?有没有直接的方法来查找列的长度...
I am reading from .xlsx file(in C#) having huge data (max length of few columns is 415000 using Microsoft.Office.Interop.Excel, the file has 12 columns each with different length. I want to find the length of specific columns say for example 3,4,5
I was trying to do something like below(as I dont see any direct function to calculate actual length of column) but gives Not enough storage is available to complete this operation. (Exception from HRESULT: 0x8007000E (E_OUTOFMEMORY)) at line 1
int rows = excelWorksheet.UsedRange.Rows.Count;
Excel.Range excelRange = excelWorksheet.UsedRange;
object[,] valueArr = (object[,])excelRange.get_Value(Excel.XlRangeValueDataType.xlRangeValueDefault);.......1
int[] columnSize = new int[valueArr.Length / rows+1];
Then looping over the columns to find the length of each column by looping over till its row has data
Can someone help on this? Is there any direct method to find length of column...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
考虑使用 Microsoft 的 Open XML SDK,它允许您将 XLSX 文件作为 XML 文档加载。与使用 Excel 和进行互操作相比,使用 Linq-to-XML 可能是操作大型 Excel 文件的更有效方法。
您可以在 MSDN 上找到有关 Open XML 的更多信息。
Consider using the Open XML SDK from Microsoft, which allows you to load an XLSX file as an XML document. Using Linq-to-XML might be a more efficient way to manipulate your large Excel files than to use Excel and doing interop.
You can find more information about Open XML on MSDN.