使用Spreadsheetgear导入DateTime格式单元格
本文关键字:格式 单元格 DateTime 导入 Spreadsheetgear 使用 | 更新日期: 2023-09-27 18:05:09
我正在使用电子表格设备读取现有的Excel文件并将数据导入SQL Server数据库。一切都很好,直到我需要导入一个格式为日期的单元格-"*3/14/2001"。我试图将此字段导入数据库中的DateTime字段。不知道该怎么做?
这是导入例程-
fileInformation.DateReleased = worksheet.Cells["B20"].Text;
fileInformation.DateRequired = worksheet.Cells["B21"].Text;
public DateTime DateReleased { get; set; }
public DateTime DateRequired { get; set; }
日期/时间在SpreadsheetGear(和Excel)中存储为表示日期/时间序列号的双精度值。如果你愿意,你可以在这里阅读更多关于这些连续日期的信息。它们在单元格中显示为"日期"的事实仅仅是range的一个函数。应用于单元格的NumberFormat ("m/d/yyyy"等)。你对IRange的使用。Text返回单元格的"格式化"值——作为字符串。要从单元格中获得实际的。net DateTime值,您可以使用IWorkbook.NumberToDateTime(…)辅助方法。例子:
// Need the IWorkbook for which your "worksheet" object belongs to.
IWorkbook workbook = worksheet.Workbook;
// This code assumes there is *always* a date (double) value in this cell. You may want
// to do some additional error checking to ensure B20 actually has a number in it.
// Otherwise the cast will give you issues.
DateTime dateReleased = workbook.NumberToDateTime((double)worksheet.Cells["B20"].Value);
fileInformation.DateReleased = dateReleased;
DateTime dateRequired = workbook.NumberToDateTime((double)worksheet.Cells["B21"].Value);
fileInformation.DateRequired = dateRequired