C# Gembox 电子表格 - 读取引用另一个 excel 文件的单元格值

C# Gembox Spreadsheet - Read cell value which references to another excel file

我现在正在使用 GemBox Spreadsheet 来使用 C# 读取 Excel 文件。在 Excel 文件中,有一个单元格包含引用另一个 excel 文件的日期值。

在 C# 中,起初,我得到了零值。在GemBox Retrieving Calculated Values From a Spreadsheet or Flexcelpost的基础上,我将Load方法替换成了XlsxOptions.PreserveMakeCopy。替换后,我得到了一些随机值,如 43257,而不是日期值。我不确定它是什么值。

这是代码片段:

public void Export()
{

    SpreadsheetInfo.SetLicense(FileExport.GemBoxLicenseKey);
    ExcelFile ef = new ExcelFile();
    FileExport file = new FileExport();
    ef.LoadXlsx(locationPath + "\XX.xlsx", GemBox.Spreadsheet.XlsxOptions.PreserveMakeCopy);

    ExcelWorksheet ws = ef.Worksheets[0];

    try
    {
        int trackrowcount = 0;
        int columncounter = 1;
        DateTime date = DateTime.MinValue;

        foreach (ExcelRow row in ws.Rows)
        {
            trackrowcount += 1;

            if (trackrowcount < 4)
                continue;

            columncounter = 1;

            foreach (ExcelCell cell in row.AllocatedCells)
            {
                if (cell.Value != null)
                {
                    if (trackrowcount == 4 && columncounter == 2)
                    {
                        var cellFormula = cell.Formula;
                        var cellValue = cell.Value;

                        //Here is where I am trying to get the date value
                        date = Convert.ToDateTime(cellValue);
                    }
                }
                columncounter += 1;
            }
        }
        // and so on
    }
    catch (Exception ex)
    {
    }
}

有没有我遗漏的设置?

您正在获取数据类型为 doubleOADate 格式的日期。您必须将其转换回 DateTime 格式。

double dateValue = 43257;
DateTime date = DateTime.FromOADate(dateValue);