您的位置:首页 > 编程语言 > C#

Winform中Datagird数据输出到Excel表格,C# .NET

2015-01-21 14:23 471 查看


首先犹豫要保存文件,则savefiledialog控件是必不可少的,则必须在一切操作之前,进行savefiledialog控件的属性设置,通常设置的属性有:

DefaultExt  
默认后缀名

Filter       
后缀名列表(|)

InitialDirectory默认文件保存路径,使用System.IO中的类Directory的方法GetCurrentDirectory()获取当前工作目录的路径

同时处理,文件保存对话框点击取消的事件处理,对DialogResult进行处理。

 

至此,还应该处理,同名是,替换原文件的处理,并在此获得文件路径。
String filename = file.FileName;//file为savefiledialog对象

FileInfo info = new FileInfo(filename);

if(filename.Trim()==””)

return;//注意文件名不能空


文件如果存在,将原文件删除:

if(info.Exits)

try

{

info.Delete();

}

catch(Exception ex)

{

MessageBox.Show(ex.ToString());

return;

}


 

设置完后,我们需要对数据大小进行检索,防止无法存储

计算出行总数,列总数,该变量在写入数据时,需要定位行列。判断行列总数时,保证列号0<column<=255,0<row<=65536

 

 

 

至此文件保存对话框已经设置完毕,现在需要对文件进行创建,并写入内容

首先需要Office
的COM,在命名空间加上Excel=Microsoft.Office.Interop.Excel;

先创建一个excel进程,再在进程创建一个工作簿workbook,再创建一个表,最后写入内容到表中即可。

//创建excel应用

Excel.Application excel=null;

//工作簿

Excel.Workbook workbook=null;

//表

Excel.Worksheet sheet=null;

//使用try尝试去对这些变量进行初始化

try

{

excel = new Excel.Application();

workbook = excel.Workbooks.Add(Missing.Value);//此处需要System.Reflection命名空间支持

sheet = (Excel.Worksheet)workbook.ActiveSheet;

//变量初始化结束

//写入数据

//先写入表头

int firstColumn=1;

for(int i=0;i<columncount;i++)//columncount为列总数

{

if(this.datagridview1.Columns[i].Visiable==true)

{

excel.Cells[1,firsColumn] = this.datagridview1.Columns[i].HeaderText;//此处注意,在excel单元格中下标从1开始

firstColumn++;

}

}

//写入内容,双重循环

for(int i = 0; i<rowcount;i++)

{

firstColumn=1;

for(int j=0 ;j<columncount;j++)

{

If(this.datagridview1.Column[j].Visiable==true)

{ excel.Cells[row+2,firstColumn]=this.datagridview1.Rows[i].Cells[j].Value.ToString().Trim();

firstColumn++;

}

}

}

}

catch

{

MessageBox.Show(“”,””);

}

MessageBox.Show(filename+”导出成功”);


至此,就保存完了

写代码的过程中,多使用try catch异常处理,在捕获异常后,要及时对进程关闭,并且置为null保证安全

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: