【问题标题】:Import DateTime formated cell using Spreadsheetgear使用 Spreadsheetgear 导入 DateTime 格式的单元格
【发布时间】:2015-07-28 22:33:24
【问题描述】:

我正在使用电子表格工具读取现有的 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; }

【问题讨论】:

  • 你遇到了什么,有什么错误吗?

标签: c# spreadsheetgear


【解决方案1】:

日期/时间在 SpreadsheetGear(和 Excel)中存储为表示日期/时间序列号的双精度数。如果需要,您可以阅读有关这些序列日期的更多信息here。它们在单元格中显示为“日期”的事实只是应用于单元格的 IRange.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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-17
    • 2019-06-02
    • 2021-09-08
    • 2020-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多