在 C# 中使用 Microsoft.Office.Interop.Excel 从 excel 读取大量数据

发布于 2024-11-25 08:13:56 字数 589 浏览 0 评论 0原文

我正在读取具有大量数据的 .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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

谁许谁一生繁华 2024-12-02 08:13:56

考虑使用 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文