2014-03-06 44 views
3

我使用OpenXML库创建Excel导出。我可以使用默认单元格引用来设置单元格引用,例如A1。OpenXML Spreadsheet获取列序号索引

由于我想动态地填充列间的数据,我想知道是否可以使用数值坐标参考,例如,细胞[1,1]?的

因此,而不是做这样的事情:

Cell cell = InsertCellInWorksheet("A", 1, worksheet); 

我想这样做:

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

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

非常感谢

安迪

UPDATE

我发现通过回答这个here其基于数字索引的列名获取列标题的方式。

这得到了列好,我可以通过代码,并可以看到它循环通过列Z,AA,AB等我现在发现,当遍历列时,如果它建立任何东西过去列ZI获得错误信息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++; 
} 

如果我硬编码山坳为“AA”,并设置的rowIndex要增加它工作正常,但这样就产生不可读的Excel文件。

我看不出如何/为什么会发生这种情况,因为我可以看到col正确地设置了代码,但某些地方似乎出了问题。

任何人都可以帮助揭示什么可能导致这一点或知道一种方法来更好地确定问题?

再次感谢

安迪

+0

而不是这似乎很TRIC ky在excel部分。由于列标题表示是字母数字。我认为操纵字母数字列不会很困难。 –

+0

据我所知,'Open XML SDK'不支持通过数字索引引用单元格。至少在我们的项目中,我们使用了默认值(即“A1”)。 但是你可以定义自己的单元名称(别名)。 – Fedor

回答