小编Cas*_*ngs的帖子

如何使用 Spreadsheet Gear C# 将 IRange 中所有日期格式的单元格转换为 DateTime?

我正在尝试使用电子表格齿轮读取 Excel 文件的使用范围,目前我已将其设置为执行此操作:

var workbook = Factory.GetWorkbookSet().Workbooks.OpenFromStream(fileStreamInput);
var sheet = workbook.Worksheets[0];
var values = sheet.Cells[sheet.UsedRange.Address].Value;
Run Code Online (Sandbox Code Playgroud)

Excel 文件将由使用不同列格式的人上传,因此此代码需要与类型无关……日期除外。这段代码引入了 Excel 存储日期的双重表示,我不希望这样。我知道以下行会将双精度值转换为日期:

workbook.NumberToDateTime(dateAsADouble);
Run Code Online (Sandbox Code Playgroud)

但是,这假设我事先知道哪个单元格是日期格式的,而我永远不会。我希望能够values使用这种方法转换存储在其中的所有日期双精度单元格,理想情况下不需要单独循环遍历每个值,但如果没有别的,我会接受这样的答案。我以为我可以使用 Linq,但似乎 SpreadsheetGear 的IRange类不支持 Linq。

有没有办法做到这一点?也许是一种测试单元格是否为日期双精度的方法?我在 SpreadsheetGear 的 API 中没有找到类似的东西。

c# linq excel datetime spreadsheetgear

1
推荐指数
1
解决办法
917
查看次数

标签 统计

c# ×1

datetime ×1

excel ×1

linq ×1

spreadsheetgear ×1