首页 > 代码库 > 将datagridview的结果导出到Excel

将datagridview的结果导出到Excel

 1         /// <summary> 2         /// 导出Excel 3         /// </summary> 4         /// <param name="sheetName">表名</param> 5         /// <param name="dgv">要导出的文件名称</param> 6         public void DataGridViewToExcel(string sheetName, DataGridView dgv) 7         { 8             //创建一个保存对话框 9             SaveFileDialog save = new SaveFileDialog();10             //创建一个流11             Stream stream = null;12             //设置文件类型13             save.Filter = "Execl files (*.xls)|*.xls";14             //文件类型默认第一个15             save.FilterIndex = 0;16             //上一次选择的目录17             save.RestoreDirectory = true;18             //获取或设置一个值,该值指示如果用户指定不存在的文件,对话框是否提示用户允许创建该文件。19             save.CreatePrompt = true;20             //设置保存窗口的标题21             save.Title = "保存当前内容到Excel";22             //创建工作簿23             IWorkbook workbook = new HSSFWorkbook();24             //表名称25             ISheet sheet = workbook.CreateSheet(sheetName);26             //创建行27             IRow row = sheet.CreateRow(0);28             //获取列数 设置表头29             for (int i = 0; i < dgv.ColumnCount; i++)30             {31                 //设置列标题32                 row.CreateCell(i).SetCellValue(dgv.Columns[i].HeaderText);33             }34             int rowindex = 1;//根据这个NPOI创建行35             //设置行36             for (int j = 0; j < dgv.Rows.Count; j++)37             {38                 IRow dataRow = sheet.CreateRow(rowindex);39                 //数据列内容40                 for (int k = 0; k < dgv.Columns.Count; k++)41                 {42                     dataRow.CreateCell(k).SetCellValue(dgv.Rows[j].Cells[k].Value.ToString().Trim());43                 }44                 rowindex++;45             }46             //判断是否单击确定47             if (save.ShowDialog() == DialogResult.OK)48             {49                 stream = save.OpenFile();//将选择的路径和流赋值50                 if (stream != null)51                 {52                     //将表格内容写入到流中53                     workbook.Write(stream);54                     MessageBox.Show("信息导出成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);55                 }56             }57             //释放资源,要不然导出来得把当前客户端关闭才能打开文件58             workbook = null;59             sheet = null;60             row = null;61             stream.Dispose();62         }