将数据导到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;
}
}
注意:是导到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;
}
}
解决方案 »
- TCP发送SMTP邮件中,连接成功但输入EHLO了后就接不到服务器的回复指令了,求解啊!!!
- 【100分】AppDomain 求甚解 (你真正了解.NET吗?)
- 关于数据的查询疑问
- 救命!ASP.net调用DTS包,困扰好几天了,谢谢啦!
- 程序集“D:\项目\FolderTree\FolderTree\obj\Debug\FolderTree.dll”不包含任何 UserControl 类型
- C#编程.编一个Windous应用程序.如何应用于文件夹加密.比如当鼠标点击时候.弹出输入密码!求大虾思路!
- 新手請教,關於C#中隨機生成UTF-8編碼漢字的問題
- 请教PropertyGrid的用法(如何弹出自定义Form?如何编辑数组时不出现默认的“String[] Array”的字样?
- 一个连接数据库的问题
- 焦点求助(急用,高分)
- 简单的C# 问题 谁先解决把分给谁
- 各位高手:为何smartphone使用WebService老是出错?
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;
}
}
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;