Gembox.Spreadsheet 中的 R1C1 公式
R1C1-formulas in Gembox.Spreadsheet
我正在测试 GemBox.Spreadsheet (47.0.1031),发现 R1C1 公式是 available in the latest versions.
但是,它是如何工作的?到目前为止我的测试失败了:
SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY");
var f = new ExcelFile();
var ws = f.Worksheets.Add("Sheet1");
f.CalculationOptions.PrioritizeR1C1ReferencingNotation = true;
for(int i = 0; i<50; i++)
{
ws.Cells[i, 0].Value = i + 1;
ws.Cells[i, 1].Formula = "=RC[-1] * 17";
}
f.Save(..path..);
甚至 =R1C1
都不起作用,并且 =RC1
被读取为绝对参考(RC 列第 1 行),尽管我尝试使用 PrioritizeR1C1ReferencingNotation
设置。
Excel 在打开文件并删除公式时显示有关 /xl/worksheets/sheet1.xml-Part 中内容损坏的警告。
以前,只有计算引擎支持 R1C1 表示法。
不过,请尝试使用当前最新的 bugfix version or NuGet package.
并尝试以下操作:
var ef = new ExcelFile();
var ws = ef.Worksheets.Add("Sheet1");
for (int i = 0; i < 50; i++)
{
ws.Cells[i, 0].Value = i + 1;
ws.Cells[i, 1].FormulaR1C1 = "=RC[-1] * 17";
}
ef.Save("output.xlsx");
我正在测试 GemBox.Spreadsheet (47.0.1031),发现 R1C1 公式是 available in the latest versions.
但是,它是如何工作的?到目前为止我的测试失败了:
SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY");
var f = new ExcelFile();
var ws = f.Worksheets.Add("Sheet1");
f.CalculationOptions.PrioritizeR1C1ReferencingNotation = true;
for(int i = 0; i<50; i++)
{
ws.Cells[i, 0].Value = i + 1;
ws.Cells[i, 1].Formula = "=RC[-1] * 17";
}
f.Save(..path..);
甚至 =R1C1
都不起作用,并且 =RC1
被读取为绝对参考(RC 列第 1 行),尽管我尝试使用 PrioritizeR1C1ReferencingNotation
设置。
Excel 在打开文件并删除公式时显示有关 /xl/worksheets/sheet1.xml-Part 中内容损坏的警告。
以前,只有计算引擎支持 R1C1 表示法。
不过,请尝试使用当前最新的 bugfix version or NuGet package.
并尝试以下操作:
var ef = new ExcelFile();
var ws = ef.Worksheets.Add("Sheet1");
for (int i = 0; i < 50; i++)
{
ws.Cells[i, 0].Value = i + 1;
ws.Cells[i, 1].FormulaR1C1 = "=RC[-1] * 17";
}
ef.Save("output.xlsx");