0

Softartisans 的 ExcelWriter v8 似乎在合并单元格公式上有一个错误。例如:

    ExcelApplication xla = new ExcelApplication();
    Workbook wb = xla.Create(ExcelApplication.FileFormat.Xlsx);

    area = ws.CreateArea(1, 0, 1, 2);
    area.MergeCells();
    cell = ws.Cells[area.FirstRow, area.FirstColumn];
    cell.Formula = "=A1”;

该公式将在工作表上消失。

顺便说一句,它适用于 xls 格式。

有可接受的解决方法吗?

4

2 回答 2

1

我为 SoftArtisans 工作。

我们已经重现了这种行为,它似乎确实是一个错误。我们会将其提交给 Development 并在有消息时更新此线程。

同时,这里有一个建议的解决方法:

area = ws.CreateArea(1, 0, 1, 2);
area.MergeCells();
cell = ws.Cells[area.FirstRow, area.FirstColumn];
cell.Value = ws.Cells["A1"].Value;

我们在这里所做的是为单元格而不是公式分配一个值。如果公式是您示例中的单元格引用,则这是一项简单的任务。但是,对于更复杂的公式,您必须在代码中进行计算。

这种方法的缺点是单元格中不再有实时公式,因此用户对输出文件的任何更改都不会自动更新它。

感谢您提请我们注意这个问题。

于 2013-05-29T14:07:06.947 回答
1

此问题已在 OfficeWriter 的最新 8.5.1 版本中得到修复。公式现在可以正确保存在 .xlsx 文件的合并单元格中(这始终适用于 .xls 文件)。请参阅OfficeWriter 更改日志

于 2013-07-08T16:12:37.993 回答