2011-05-05 96 views
10

我使用c#來爲excel文件的特定單元格着色。 我使用:excel細胞着色

Application excel = new Application(); 
Workbook wb = excel.Workbooks.Open(destPath); 
Worksheet ws = wb.Worksheets[1]; 
ws.get_Range(ws.Cells[row, clmn]).Cells.Interior.Color = 36; 

...顏色的細胞,但是這是行不通的。 任何人都可以幫我嗎?

+0

是什麼問題? – BrunoLM 2011-05-05 11:41:27

+1

它給出異常「異常來自HRESULT:0x800A03EC」 – bill 2011-05-05 11:56:11

回答

15

嘗試類似的東西

ws.Cells[row, clmn].Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red) 
+2

它給出異常「異常來自HRESULT:0x800A03EC」 – bill 2011-05-05 11:56:37

+0

如何迭代通過列和檢查每一行? – Si8 2016-12-20 18:15:55

+0

有一件事情會導致可怕的「HRESULT異常:0x800A03EC」,如果該表被保護。在嘗試更改工作表上的任何內容之前,請檢查'nWS.ProtectContents'。 – TheAtomicOption 2017-11-24 22:00:37

6

細胞[行,clmn]是一個範圍,所以你不需要調用get_Range(),有可以使用的顏色的枚舉。

ws.Cells[row, clmn].Interior.Color = XlRgbColor.rgbBlack; 
+1

'。沒有發現內部' – Si8 2016-12-20 18:16:44

4

如果您想通過顏色索引設置顏色,則需要使用此方法:

Cells[row, col].Interior.ColorIndex = 36; 
1

你可以顏色的單元或整列或整行。

下面的代碼將幫助你。

xlWorkSheet.get_Range(xlWorkSheet.Cells[2, 2], xlWorkSheet.Cells[2, 4]).Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Green); 

其他

xlWorkSheet.get_Range(xlWorkSheet.Cells[2, 3], xlWorkSheet.Cells[2, 3]).Interior.Color = Excel.XlRgbColor.rgbRed; 

這裏xlWorksheet是對象Excel工作表對象。

get_Range需要2個可變的啓動單元,另一個是末端單元。

所以如果你指定兩個值相同,那麼只有一個單元格被着色。

xlWorkSheet.cells [row,column]用於指定單元格。

System.Drawing.ColorTranslator.ToOle(SystemDrawing.Color.Green)用於定義OLE格式的顏色。

Excel.XlRgbColor.rgbRed是着色細胞 的一個excel方式這種方法可以訪問大量的顏色可以在這裏list of colors

在下面的代碼中發現爲i限定的Excel工作表的方式。

Excel.Workbook xlWorkBook; 
Excel.Worksheet xlWorkSheet; 
Excel.Range xlwidthadjust; //used this to adjust width of columns 
object misValue = System.Reflection.Missing.Value; 

xlWorkBook = xlApp.Workbooks.Add(misValue); 
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); 

與此代碼我確信,你不會從HRESULT得到此異常例外:0x800A03EC

-1

Exception from HRESULT: 0x800A03EC

解決方法:更改misValuesheet1sheet2sheet3

xlWorkBook = xlApp.Workbooks.Add("sheet1"); 

這適用於我。 system.reflaction.missing.value那是什麼,它與Excel.workbooks.add來自Excel文件的默認值無關。 當您創建Excel文件時,默認工作表是sheet1,sheet2和sheet3。

1

確保您使用的是:

using Excel = Microsoft.Office.Interop.Excel; 

如果您有要更改範圍內的變量,然後使用:

chartRange = xlWorkSheet.get_Range("a5", "a8");  
chartRange.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Black); 

如果你想只改變一個顏色然後使用:

xlWorkSheet.Cells[row, col].Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Black); 

...其中'行'是行號,'col'是分配給給出字母列(從1開始)。