码迷,mamicode.com
首页 > Windows程序 > 详细

C# 把datagridview控件上的表格输出到excel文件

时间:2015-09-20 22:10:30      阅读:285      评论:0      收藏:0      [点我收藏+]

标签:

 

 

截取项目示例中的一部分核心代码


//——————————————————————————————核心代码部分

this.toolStripProgressBar1.Maximum = this.dataGridView1.Rows.Count-1;
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook excelworkbook = excel.Application.Workbooks.Add(true);
excel.Visible = false;//是否显示excel文本


try
{
//异步执行,保证前台窗口程序无卡顿
await Task.Run(() =>
{
for (int i = 0; i < this.dataGridView1.Columns.Count; i++)//复制表格的列头
{
excel.Cells[1, i + 1] = this.dataGridView1.Columns[i].HeaderText;//excel对象的行列索引是从1开始的
//datagridview的行列索引是从0开始的
}

for (int i = 0; i < this.dataGridView1.Rows.Count-1; i++)//减去列头的一行
{
for (int j = 0; j < this.dataGridView1.Columns.Count; j++)
{
if(this.dataGridView1.Rows[i + 1].Cells[j].Value==null)
{
excel.Cells[i + 2, j + 1] ="‘ ";//当表格的单元格为空时,保留行并跳过
break;
}
else if (this.dataGridView1.Rows[i + 1].Cells[j].ValueType == typeof(string))
{
excel.Cells[i + 2, j + 1] = "‘" + this.dataGridView1.Rows[i + 1].Cells[j].Value.ToString();
}

else
{
excel.Cells[i + 2, j + 1] = this.dataGridView1.Rows[i + 1].Cells[j].Value.ToString();
}

}

this.toolStripProgressBar1.Value++;//进度条前进


}
});
}
catch (Exception ex)
{
}
finally
{
//保存xls表格
excelworkbook.SaveAs("111.xls", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlShared, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);

//释放资源
if(excelworkbook!=null)
excelworkbook.Close(Missing.Value, Missing.Value, Missing.Value);
if (excel != null)
{
excel.Workbooks.Close();
excel.Quit();
}


//——————————————————————后续代码非核心代码

 

 

主要是两个注意的点


①Microsoft.Office.Interop.Excel.Application对象excel的行列索引是从1开始,和datagridview从0开始索引区别开来,
②如果datagirdview单元的值是string类型时,后面加个 ‘



开发时需要的Microsoft.Office.Interop.Excel.dll组件http://pan.baidu.com/s/1jGrPHrS

C# 把datagridview控件上的表格输出到excel文件

标签:

原文地址:http://www.cnblogs.com/magicianlyx/p/4824343.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!