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)
{
}
}
有没有我遗漏的设置?
您正在获取数据类型为 double
的 OADate
格式的日期。您必须将其转换回 DateTime
格式。
double dateValue = 43257;
DateTime date = DateTime.FromOADate(dateValue);
我现在正在使用 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)
{
}
}
有没有我遗漏的设置?
您正在获取数据类型为 double
的 OADate
格式的日期。您必须将其转换回 DateTime
格式。
double dateValue = 43257;
DateTime date = DateTime.FromOADate(dateValue);