我正在尝试读取大小为263 KB的Excel文件,它包含3列和6998行数据,第一列是字母数字标识Site ID
例如:' D7302',以及其他2列是十进制类型的latitude
和longitude
,
try
{
dataTable = worksheet.Cells.ExportDataTable(HeaderLineStartingRowNumber, 0, worksheet.Cells.MaxRow - HeaderLineStartingRowNumber + 1, worksheet.Cells.MaxColumn + 1, true);
}
catch (CellsException)
{
dataTable = worksheet.Cells.ExportDataTableAsString(HeaderLineStartingRowNumber, 0, worksheet.Cells.MaxRow - HeaderLineStartingRowNumber + 1, worksheet.Cells.MaxColumn + 1, true);
}
此代码始终抛出CellsException
并将数据导出为截断小数的字符串并返回一个字符串,而不是28.125027778
它返回28
,当我将文件大小减小到100行时已按预期成功导出,因此它必须是大小问题,因此ExportDataTable
是否有大小限制,谢谢
答案 0 :(得分:1)
我们已使用以下示例代码测试了您的问题,但它运行正常。我们使用most recent version i.e. 18.4 uploaded on NuGet测试了此问题。请下载代码中使用的sample Excel file,并查看显示的screenshot,工作表中的数据已成功导出到数据表。
代码与您的代码完全相似,几乎没有更改,因此我们在代码中找不到任何错误。因此,如果您使用的是旧版本,则必须使用最新版本。
如果您的问题仍然出现在最新版本中,请向我们提供您的可运行示例代码(最好是示例控制台应用程序项目)以及代码中使用的所有文件。我们将在最后执行您的代码并尝试复制该问题并将其记录在我们的数据库中以便在将来的版本中进行修复。感谢您在这方面的合作,并度过了美好的一天。
代码中使用的示例Excel文件 - 下载链接:
示例代码
Workbook wb = new Workbook("sampleExportDataTable.xlsx");
Worksheet worksheet = wb.Worksheets["Data"];
int HeaderLineStartingRowNumber = 25;
var dataTable = worksheet.Cells.ExportDataTable(HeaderLineStartingRowNumber, 0, worksheet.Cells.MaxDataRow - HeaderLineStartingRowNumber + 1, worksheet.Cells.MaxDataColumn + 1, true);
注意: 我在Aspose担任开发人员传播者