日期:2014-05-19  浏览次数:21042 次

如何删除Excel表的某一列
将数据导到Excel后,如何将不必要的空列删掉?
注意:是导到Excel后,不要说通过Sql等处理后再导。

或者

我将DataGridView导出到Excel表,但其中有未知数量的列是不可见的,导出时我判断了不可见列不导出,但会形成空白列。
如这样:
  for   (int   i   =   0;   i   <   gvList.Columns.Count-1;   i++)
                        {
                                if   (gvList.Columns[i].Visible)
                                {
                                        VisibleCount++;
                                        worksheet.Cells[2,   i   +   1]   =   gvList.Columns[i].Caption.ToString();
                                        worksheet.get_Range(worksheet.Cells[2,   i   +   1],   worksheet.Cells[2,   i   +   1]).HorizontalAlignment   =   Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignCenter;//设置标题格式为居中对齐  
                                        worksheet.get_Range(worksheet.Cells[2,   i   +   1],   worksheet.Cells[2,   i   +   1]).Font.Bold   =   true;
                                }
                        }

------解决方案--------------------
int j=0;
for (int i = 0; i < gvList.Columns.Count-1; i++)
{
if (gvList.Columns[i].Visible)
{
j++;
VisibleCount++;
worksheet.Cells[2, j + 1] = gvList.Columns[i].Caption.ToString();
worksheet.get_Range(worksheet.Cells[2, j+ 1], worksheet.Cells[2, j + 1]).HorizontalAlignment = Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignCenter;//设置标题格式为居中对齐
worksheet.get_Range(worksheet.Cells[2, j + 1], worksheet.Cells[2, j+ 1]).Font.Bold = true;
}
}

------解决方案--------------------
帮顶3下
------解决方案--------------------
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
excel.Application.Workbooks.Add(true);

for (int i = 1; i <= ds.Tables[0].Columns.Count; i++)
{
excel.Cells[1, i] = ds.Tables[0].Columns[i - 1].ColumnName.ToString();
}
for (int i = 2; i <= ds.Tables[0].Rows.Count + 1; i++)
{
for (int j = 1; j <= ds.Tables[0].Columns.Count; j++)
{
excel.Cells[i, j] = ds.Tables[0].Rows[i - 2][j - 1].ToString();
}
}
excel.Visible = true;