OpenXML电子表格获取列序数索引

3
我正在使用OpenXML库创建一个Excel导出。我可以使用默认单元格引用(例如A1)设置单元格引用。
由于我希望动态填充跨列的数据,我想知道是否可以使用数值坐标引用,例如Cells [1,1]?
因此,我可以像这样做:
Cell cell = InsertCellInWorksheet("A", 1, worksheet);

我希望能够实现以下内容:

Cell cell = InsertCellInWorksheet(columnIndex, rowIndex, worksheet);

我似乎找到了很多使用Excel网格引用(“A1”)的示例,但没有使用数值表示的内容。

非常感谢

更新

我已经找到了一种方法,可以通过这里的答案获取列标题,该答案基于数字索引计算列名。

这可以正确获取列,我可以逐步执行代码,并可以看到它在循环遍历Z、AA、AB等列。现在我发现,当迭代遍历列时,如果它构建超过Z列的任何内容,我会收到错误消息Excel found unreadable content in...Do you want to recover the contents of this workbook? If you trust the source of this workbook, click Yes.

这是设置单元格的代码:

int columnIndex = 1;
string col;
uint rowIndex = 60;
foreach (var item in _data)
{
    col = ExcelHelper.GetColumnName(columnIndex);
    ExcelHelper.SetCell(wsp, col, rowIndex, item.PeriodEnd.ToString("dd/MM/yyyy"), excelStylesheet.TableCell);
    columnIndex++;
}

如果我强制指定col为“AA”,并将rowIndex设为递增,则可以正常工作,但这样会生成一个难以读取的Excel文件。我无法理解为什么会发生这种情况,因为我可以在代码中看到col被正确设置,但似乎有些地方出了问题。有人能帮忙解决这个问题或提供更好的解决方案吗?谢谢! Andy

这在 Excel 方面似乎非常棘手。因为列标题表示是字母数字混合的。我认为操作字母数字混合的列不会很困难。 - Amit Shakya
据我所知,“Open XML SDK”不支持通过数字索引引用单元格。至少在我们的项目中,我们使用默认值(即“A1”)。 但是您可以定义自己的单元格名称(别名)。 - Fedor
1个回答

2

MSDN上有一个bug,请看一下这个答案:https://dev59.com/tW3Xa4cB1Zd3GeqPhKvw#25213648 - Flappy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接