2017-09-10 47 views
0

我使用此代碼創建的Excel文件:在Execl的刪除樣式使用C#

Sheets worksheets = wb.Sheets; 
Worksheet worksheet = (Worksheet)worksheets[4]; 
int rows = dt.Rows.Count; 
int columns = dt.Columns.Count; 
var data = new object[rows + 1, columns]; 

for (var column = 0; column < columns; column++) 
{ 
    data[0, column] = dt.Columns[column].ColumnName; 
} 

for (var row = 0; row < rows; row++) 
{ 
    for (var column = 0; column < columns; column++) 
    { 
    data[row + 1, column] = dt.Rows[row][column]; 
    } 
} 

Range beginWrite = (Range)worksheet.Cells[1, 1]; 
Range endWrite = (Range)worksheet.Cells[rows + 1, columns]; 
Range sheetData = worksheet.Range[beginWrite, endWrite]; 
sheetData.Value2 = data; 
worksheet.Select(); 
sheetData.Worksheet.ListObjects.Add(XlListObjectSourceType.xlSrcRange, 
    sheetData, 
    Type.Missing, 
    XlYesNoGuess.xlNo, 
    Type.Missing); 

sheetData.Select(); 
Excel.ActiveWindow.DisplayGridlines = false; 
Excel.Application.Range["2:2"].Select(); 
Excel.Application.Range["$A$3"].Select(); 

問題就在這裏把它設置默認格式樣式excel文件
我不知道如何清除所有格式式樣在Excel工作表

+0

「格式風格」是什麼意思?你的代碼在哪些行失敗? - 需要更多信息。 –

+0

表 –

+0

的設計我的代碼不會失敗,但它將不同的設計設置爲我的excel文件,所以我想刪除該樣式 –

回答

0

如果你正在試圖做的是刪除所有樣式,這會工作:

using Excelx = Microsoft.Office.Interop.Excel; 

Excelx.Workbook wb = excel.ActiveWorkbook; 

foreach (Excelx.Style st in wb.Styles) 
    st.Delete(); 

話又說回來,你可能只希望清除自定義樣式(不是標配的那些),在這種情況下需要做一些小修改:

foreach (Excelx.Style st in wb.Styles) 
{ 
    if (!st.BuiltIn) 
     st.Delete(); 
} 

樣式存儲在工作簿級別,所以在某些時候您需要聲明工作簿。從那裏開始,Workbook對象的Styles集合就擁有了您需要的一切。