2013-05-12 55 views
1

我正在使用excellibrary,我想設置一個行的高度或列寬。聽起來很簡單,但我找不到解決方案。我怎樣才能做到這一點?使用excellibrary設置行高

回答

2

我想你是指excellibrary?我沒有它的那一刻我面前裝起來,但如果沒有記錯,嘗試:

Workbook workbook = new Workbook(); 
Worksheet worksheet = new Worksheet("First Sheet"); 

worksheet.Cells[0, 0] = new Cell("Cell 0,0"); 
worksheet.Cells[1, 0] = new Cell("Cell 1,0"); 

ushort currentHeight = worksheet.Cells.GetRowHeight(1); 
worksheet.Cells.GetRow(1).Height = (ushort)(currentHeight + 20); 

workbook.Worksheets.Add(worksheet); 
workbook.Save(filePath); // will need to set filepath 

編輯:這個屬性雖然理論上這是正確的,實際上,我不知道作品(在Excel 2010和Excel 2007中快速測試之後)。

如果按照源代碼,那麼顯然RowHeight 財產 公共領域也由WorksheetEncoder line 55得到寫出來,並依次通過ROWEncode方法進入Stream寫出工作簿,但如果我再在Excel中打開,它不起作用。 (我在2007年以前沒有Excel版本進行測試)。

不幸的是,沒有其他屬性可用於設置行高。這是BinaryWriter用於生成工作簿的那個。

另請注意,如果您的目標是Excel 2010,則需要填寫上述示例中的一大塊單元格,以確保最終文件足夠大,以便Excel 2010能夠快樂。例如:

Workbook workbook = new Workbook(); 
Worksheet worksheet = new Worksheet("First Sheet"); 

// Excel 2010 hack - issue 102 
for (int r = 0; r < 150; r++) { 
    for (int c = 0; c < 10; c++) { 
     worksheet.Cells[r, c] = new Cell(" "); 
    } 
} 
+0

感謝您的回答,它對我也不起作用。你會推薦什麼解決方法?如果可能的話,可能會設置沒有excellibrary和其他庫? – 2013-05-12 18:54:38

+0

我認爲如果行高很重要,則需要完全切換到另一種方法,例如Visual Studio [辦公解決方案](http://msdn.microsoft.com/zh-cn/library/jj620922.aspx)。 – 2013-05-12 20:04:56