使用C#删除Execl中的样式

时间:2017-09-10 17:33:18

标签: c# excel

我使用以下代码创建了Excel文件:

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工作表中的所有格式样式

1 个答案:

答案 0 :(得分: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集合包含您需要的所有内容。