2014-03-06 75 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

回答