列不执行公式 Excel/C#/EPPlus
Column doesn't execute formula Excel/C#/EPPlus
我有这个 excel sheet 我使用 EPPlus 从 C#.NET 应用程序中生成,我有一个公式,除非我手动单击单元格并按 enter 键,否则它不会执行.
这是我当前的输出(第一个值是 F 列,第二个值是 G):
02:10:58 04:30:00 =F1/G1
01:50:52 04:06:00 =F2/G2
它应该是这样的:
02:10:58 04:30:00 0,485061728
01:50:52 04:06:00 0,450677507
C# 端的值被初始化为字符串,这可能是导致错误的原因:
string performance = "=F" + (list.Count + 2) + "/G" + (list.Count + 2)
是否有解决方法或其他方法来初始化我的列以便直接向用户显示值?
谢谢!
编辑
创建 excel 文件的代码
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Informations_OF");
worksheet.Cells["A1"].LoadFromCollection(list.ToListExport(), true);
worksheet.Cells[worksheet.Dimension.Address].AutoFitColumns();
看起来您可能在 C# 代码中设置单元格的值 属性。尝试改为设置公式 属性。哦,在您的公式定义中删除前导“=”- EPPlus 的文档指出您不应该把它放在那里。
更新了代码示例
var path = @"C:\Temp\EPPlus Demo.xlsx";
var fi = new FileInfo(path);
if (fi.Exists)
fi.Delete();
using (var pck = new ExcelPackage())
{
var wb = pck.Workbook;
var ws = wb.Worksheets.Add("Demo");
ws.Cells["A1"].LoadFromCollection(list.ToListExport(), true);
for (var r = 2; r <= ws.Dimension.Rows; r++)
{
ws.Cells[r, 8].Formula = $"F{r}/G{r}";
// Or alternatively, using R1C1 format
ws.Cells[r, 8].FormulaR1C1 = "RC[-2]/RC[-1]";
}
pck.SaveAs(fi);
}
我有这个 excel sheet 我使用 EPPlus 从 C#.NET 应用程序中生成,我有一个公式,除非我手动单击单元格并按 enter 键,否则它不会执行.
这是我当前的输出(第一个值是 F 列,第二个值是 G):
02:10:58 04:30:00 =F1/G1
01:50:52 04:06:00 =F2/G2
它应该是这样的:
02:10:58 04:30:00 0,485061728
01:50:52 04:06:00 0,450677507
C# 端的值被初始化为字符串,这可能是导致错误的原因:
string performance = "=F" + (list.Count + 2) + "/G" + (list.Count + 2)
是否有解决方法或其他方法来初始化我的列以便直接向用户显示值?
谢谢!
编辑
创建 excel 文件的代码
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Informations_OF");
worksheet.Cells["A1"].LoadFromCollection(list.ToListExport(), true);
worksheet.Cells[worksheet.Dimension.Address].AutoFitColumns();
看起来您可能在 C# 代码中设置单元格的值 属性。尝试改为设置公式 属性。哦,在您的公式定义中删除前导“=”- EPPlus 的文档指出您不应该把它放在那里。
更新了代码示例
var path = @"C:\Temp\EPPlus Demo.xlsx";
var fi = new FileInfo(path);
if (fi.Exists)
fi.Delete();
using (var pck = new ExcelPackage())
{
var wb = pck.Workbook;
var ws = wb.Worksheets.Add("Demo");
ws.Cells["A1"].LoadFromCollection(list.ToListExport(), true);
for (var r = 2; r <= ws.Dimension.Rows; r++)
{
ws.Cells[r, 8].Formula = $"F{r}/G{r}";
// Or alternatively, using R1C1 format
ws.Cells[r, 8].FormulaR1C1 = "RC[-2]/RC[-1]";
}
pck.SaveAs(fi);
}