如何使用NetOffice更改Excel行的行颜色?
我正在努力解决一个简单的问题,但我无法弄清楚。
我有一个Excel文档,我做了一些处理(使用NetOffice API)。 这工作正常,但我想更改处理后的行颜色,所以在范围内的每一行应处理后具有相同的颜色。
我得到一个COMException(HRESULT:0x800A03EC)与下面的代码:
foreach (Excel.Range row in rg) { //do the processing... ... row.Interior.Color = XlRgbColor.rgbAliceBlue; }
我也为这个HRESULTsearch,并试图解决这个问题,在Open() – 方法通过设置readOnly为false和可编辑和corruptLoad为true。 那没用。 我也尝试将交互属性设置为true,并以不同的格式(.xls,.xlsx)保存excel文件,但没有任何结果。
我发现excelfile / workbook是受保护的。 所以我试图像这样解除ActiveWorkbook的保护
app.ActiveWorkbook.Unprotect();
但是,这也出错了,并抛出一个COMException,该工作簿对象的unprotect属性不能分配。
我希望有人能帮助我。
提前致谢,
科德尔
在Workbook上打开只读参数为false,并传递excel文件的密码。
Excel.Workbook workBook = excelApplication.Workbooks.Open(sMyExcelPath,0, False,5,123,123,True,XlPlatform.xlWindows,"\t",False,False,0,True,1,0)
你可以使用下面的代码来改变excel-row的行颜色。
Excel.Worksheet workSheet = workBook.Worksheets(1); workSheet.Rows.Interior.Color = XlRgbColor.rgbAliceBlue;
设置边框在代码下方尝试:
workSheet.Rows.Borders(XlBordersIndex.xlInsideHorizontal).LineStyle = XlLineStyle.xlDouble; workSheet.Rows.Borders(XlBordersIndex.xlInsideHorizontal).Weight = 4; workSheet.Rows.Borders(XlBordersIndex.xlInsideHorizontal).Color = ToDouble(Color.Black);
以上代码改变了Excel表格的所有行的颜色。 如果您只想更改使用的范围颜色,请尝试使用下面的代码。
workSheet.UsedRange.Interior.Color = XlRgbColor.rgbAliceBlue;
在代码下面设置Border Try:
workSheet.UsedRange.Borders(XlBordersIndex.xlInsideHorizontal).LineStyle = XlLineStyle.xlDouble; workSheet.UsedRange.Borders(XlBordersIndex.xlInsideHorizontal).Weight = 4; workSheet.UsedRange.Borders(XlBordersIndex.xlInsideHorizontal).Color = ToDouble(Color.Black);