1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > C# dataGridView中的数据导出到excel

C# dataGridView中的数据导出到excel

时间:2020-07-14 18:43:28

相关推荐

C# dataGridView中的数据导出到excel

1.新建窗体

我们需要新建一个Windows Form窗体,并在其中添加一个DataGridView控件,连接数据库读取数据表中的信息返回到DataGridView控件中,相信这一步都会做,我就不演示了,直接给出效果图:

2.添加引用

我们要实现数据导出到Excel这个功能,就需要引用一个命名空间,如图所示(如果没有这个dll可在我的资源中查找,我已上传过):

3.在代码中添加命名空间:

4.代码

//查出的数据导出到excel表

private void button12_Click(object sender, EventArgs e)

{

string fileName = "";

string saveFileName = "";

SaveFileDialog saveDialog = new SaveFileDialog();

saveDialog.DefaultExt = "xlsx";

saveDialog.Filter = "Excel文件|*.xlsx";

saveDialog.FileName = fileName;

saveDialog.ShowDialog();

saveFileName = saveDialog.FileName;

if (saveFileName.IndexOf(":") < 0) return; //被点了取消

Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();

if (xlApp == null)

{

MessageBox.Show("无法创建Excel对象,您的电脑可能未安装Excel");

return;

}

Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;

Microsoft.Office.Interop.Excel.Workbook workbook =

workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);

Microsoft.Office.Interop.Excel.Worksheet worksheet =

(Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];//取得sheet1

//写入标题

for (int i = 0; i < dataGridView1.ColumnCount; i++)

{ worksheet.Cells[1, i + 1] = dataGridView1.Columns[i].HeaderText; }

//写入数值

for (int r = 0; r < dataGridView1.Rows.Count; r++)

{

for (int i = 0; i < dataGridView1.ColumnCount; i++)

{

worksheet.Cells[r + 2, i + 1] = dataGridView1.Rows[r].Cells[i].Value;

}

System.Windows.Forms.Application.DoEvents();

}

worksheet.Columns.EntireColumn.AutoFit();//列宽自适应

MessageBox.Show(fileName + "资料保存成功", "提示", MessageBoxButtons.OK);

if (saveFileName != "")

{

try

{

workbook.Saved = true;

workbook.SaveCopyAs(saveFileName); //fileSaved = true;

}

catch (Exception ex)

{//fileSaved = false;

MessageBox.Show("导出文件时出错,文件可能正被打开!\n" + ex.Message);

}

}

xlApp.Quit();

GC.Collect();//强行销毁

}

5.效果图

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。