【发布时间】:2021-03-10 00:29:51
【问题描述】:
我需要创建一个 Excel 文件,其中有一列包含时间值(TimeSpan 对象)。
我正在使用GemBox.Spreadsheet,我可以使用ExcelCell.Value 属性或ExcelCell.SetValue 方法创建一个包含日期值(DateTime 对象)的列:
var workbook = new ExcelFile();
var worksheet = workbook.Worksheets.Add("Sheet1");
worksheet.Cells["A1"].Value = "Start Dates";
// Set cell value to DateTime with Value property.
worksheet.Cells["A2"].Value = DateTime.Today;
// Set cell value to DateTime with SetValue method.
worksheet.Cells["A3"].SetValue(DateTime.Today);
workbook.Save("output.xlsx");
但这些都不适用于TimeSpan。
正确使用时,我得到NotSupportedException,而当使用该方法时,我得到一个编译器错误。
让我感到困惑的是,我可以加载包含时间值的单元格的现有 Excel 文件并读取它们。
所以,我也必须有一种方法可以编写它们,对吧?
【问题讨论】:
-
TimeSpan值的单元格的预期输出是多少?您希望它们如何出现在 Excel 中。 -
类似于时间值,与我从 Microsoft Excel 手动写入值“12:30:00”或“999:59:59”时得到的值相同。
-
Excel 中没有直接等效的 TimeSpan。您应该将值设置为数字并使用 excel 格式显示。这里的例子; stackoverflow.com/questions/43896427/… 。还要检查
TimeValue功能,它可以提供帮助。
标签: c# excel datetime gembox-spreadsheet