2013-05-28 11 views
2

我正在使用C#.net和NetOffice.ExcelApi創建一個Excel工作表。我要自動調整一列至G用下面的代碼:柱子如何安裝?

Excel.Workbook xlWorkBook = xlApp.Workbooks.Add(); 
Excel.Worksheet xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets[1]; 
xlWorkSheet.Columns["A:G"].AutoFit(); 

我也試過這樣的代碼:

Excel.Workbook xlWorkBook = xlApp.Workbooks.Add(); 
Excel.Worksheet xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets[1]; 
xlWorkSheet.Columns.AutoFit(); 

結果仍是列沒有安裝。

有人可以幫我嗎?

謝謝!

回答

0

我想你可能還需要添加行索引。

我使用Excel = Microsoft.Office.Interop.Excel;

而這個工程確定:

Excel.Range myRange= xlWorkSheet.get_Range("A1:G10"); 
myRange.AutoFit(); 

也許有類似範圍NetOffice.ExcelApi了。 :|

順便說一句,有沒有原因,你爲什麼不使用Microsoft.Office.Interop.Excel?正如標籤所說,你正在編寫一個Windows窗體應用程序,所以不應該有任何問題。我認爲還有更多關於Microsoft.Office.Interop.Excel的文檔。

更新:我發現在文檔中的東西,應該可以幫助您:http://netoffice.codeplex.com/wikipage?title=Excel_Example02

// setup rows and columns 
    workSheet.Columns[1].AutoFit(); 
    workSheet.Columns[2].ColumnWidth = 25; 
    workSheet.Columns[3].ColumnWidth = 25; 
    workSheet.Columns[4].ColumnWidth = 25; 
    workSheet.Columns[5].ColumnWidth = 25; 
    workSheet.Rows[9].RowHeight = 25; 

你可能想要做這樣的事情:

xlWorkSheet.Range("A:G").AutoFit(); 

,或者如果它真正需要的行索引:

xlWorkSheet.Range("A1:G20").AutoFit(); 

還是你可以直接設置所有的列:

xlWorkSheet.Columns[1].AutoFit(); 
xlWorkSheet.Columns[2].AutoFit(); 

我希望能爲你解決一些問題:)。 但是你的xlWorkSheet.Columns.AutoFit();不起作用很奇怪。你也許應該檢查問題是否不在你的工作表中。

+1

也許該解決方案可能與Microsoft.Office.Interop.Excel一起工作。但是,使用NetOffice.ExcelApi則沒有。 我正在使用的應用程序的前程序員已選擇NetOffice程序包。他離開時我在當前位置替換了他。 – Nic

+0

@Nic我更新了答案,該鏈接/代碼應該可以幫助我,我想。 –

0

我有同樣的問題。

我意識到,在代碼寫入excel之前,我使用代碼myRange.Columns.AutoFit();

請看看這種情況。