我正在使用名为 Gembox 的外部组件来创建 Excel 报告。
将 C# 中的 DateTime 属性导出到 Excel 时,该值在 Excel 中显示为数字(例如“-693593”)。所有其他(基本)属性类型均显示为所代表的类型。
在 Excel 中,我希望将 DateTime 显示为正确的日期,在 Gembox 选项中,我找不到将格式设置为日期的选项。
另一种选择是在 Excel 中设置值时使用 .ToString() 转换 DateTime,这会给出所需的结果,但有更好的方法吗?
一些简单的代码示例:
ExcelFile excelFile = new ExcelFile();
ExcelWorksheet excelWorksheet = excelFile.Worksheets.Add("MyWorksheet");
int rownumber = 0;
int columnnumber = 2;
DateTime dateTime = DateTime.Now;
excelWorksheet.Cells[rownumber, columnnumber].Value = dateTime;
Run Code Online (Sandbox Code Playgroud)
输出示例:

作为评估名为"GemBox.document"的第三方DLL的一部分,我希望能够在运行时运行此程序集.但是为了让它在试用模式下运行,我需要使用:
ComponentInfo.FreeLimitReached +=
(sender, e) => e.FreeLimitReachedAction = FreeLimitReachedAction.ContinueAsTrial;
Run Code Online (Sandbox Code Playgroud)
如果您直接引用应用程序中的DLL,这是标准方法.但是,我希望能够通过在运行时调用DLL来实现此目的.这个的正确语法是什么?
编辑:ComponentInfo是一个公共静态类GemBox.Document
根据他们的文档:GemBox.Spreadsheet可以读写公式,但无法计算公式结果.在MS Excel中打开XLS文件时,将自动计算公式结果.
因此,如果我创建一个带有一些注入值的电子表格并将其保存到磁盘,如果我在excel中打开文件,我可以看到计算值.
如果我在gembox中打开该文件并查找计算出的单元格的值,则得到0的结果
flexcel中也存在相同的功能..无法从给定的单元格中检索计算出的值..它返回零..
所以我正在做的是:
值始终为0.我在excel中打开文件..值按预期计算.
我正在尝试显示日期并将其恢复到Labels = strings,但我在网上遇到错误list.Add((string)myReader["Date"]);
这是我的代码:
con.Open();
myReader = cmdDB.ExecuteReader();
List<string> list = new List<string>();
while (myReader.Read())
{
list.Add((string)myReader["Date"]);
}
string[] strings = list.Select(x => x.ToString()).ToArray();
cartesianChart1.AxisX.Add(new Axis
{
Title = "Date",
Labels = strings
});
cartesianChart1.AxisY.Add(new Axis
{
Title = "Sales",
LabelFormatter = value => value.ToString()
});
Run Code Online (Sandbox Code Playgroud)
有什么解决办法吗?谢谢!PS 我正在使用 LiveCharts 和 MySQL。