【问题标题】:Reading a specific area from Excel to a 2D array从 Excel 读取特定区域到二维数组
【发布时间】:2016-05-23 18:33:39
【问题描述】:

我在 Excel 中有一个表格,我想将选定区域导入到 Excel 中的二维数组中。它必须是 C# 中的相同二维数组。我有图,请看。我想将该区域导入int array[81,81]

【问题讨论】:

  • 您也可以为此使用 EP-Plus 库。它在 Nuget 和免费开源上可用。这是它的链接:epplus.codeplex.com

标签: c# excel import oledb


【解决方案1】:

您可以为此使用GemBox.Spreadsheet 库(您可以使用其免费版本来实现此目的)。

这是一个您可以使用的示例:

ExcelFile workbook = ExcelFile.Load("guncellenmis.xlsx");
ExcelWorksheet worksheet = workbook.Worksheets.ActiveWorksheet;

int count = 81;
int[,] data = new int[count, count];

// Get range from "C2" to "CE82".
CellRange range = worksheet.Cells.GetSubrangeRelative(1, 2, count, count);
// Or you can retrieve the required range differently, like:
//CellRange range = worksheet.Cells.GetSubrangeRelative("C2:CE82");
//CellRange range = worksheet.Cells.GetSubrangeRelative("C2", "CE82");
// etc.

for (int row = 0; row < range.Height; ++row)
    for (int column = 0; column < range.Width; ++column)
        data[row, column] = range[row, column].IntValue;

编辑: 为什么要将 excel 文件导出为二维数组而不是 DataTable。
您可以将所需数据作为 DataTable 检索,如下所示:

ExcelFile workbook = ExcelFile.Load("guncellenmis.xlsx");
ExcelWorksheet worksheet = workbook.Worksheets.ActiveWorksheet;

DataTable table = worksheet.CreateDataTable(
    new CreateDataTableOptions("C2", 81, 81));

【讨论】:

  • 非常感谢。我对你有兴趣。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-23
  • 2021-05-24
相关资源
最近更新 更多