日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NPOI 将DataGridView导出到Excel

發(fā)布時間:2023/12/4 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NPOI 将DataGridView导出到Excel 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

導出為xls格式用HSSF,xlsx用XSSF。

1、類

using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; using System.Text; using NPOI.HSSF.UserModel; using System.IO; using NPOI.SS.UserModel;public class ExportExcel {public void GridToExcel(string fileName, DataGridView dgv){if (dgv.Rows.Count == 0){return;}SaveFileDialog sfd = new SaveFileDialog();sfd.Filter = "Excel 2003格式|*.xls";sfd.FileName = fileName + DateTime.Now.ToString("yyyyMMddHHmmssms");if (sfd.ShowDialog() != DialogResult.OK){return;}HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = (HSSFSheet)wb.CreateSheet(fileName);HSSFRow headRow = (HSSFRow)sheet.CreateRow(0);for (int i = 0; i < dgv.Columns.Count; i++){HSSFCell headCell = (HSSFCell)headRow.CreateCell(i, CellType.String);headCell.SetCellValue(dgv.Columns[i].HeaderText);}for (int i = 0; i < dgv.Rows.Count; i++){HSSFRow row = (HSSFRow)sheet.CreateRow(i + 1);for (int j = 0; j < dgv.Columns.Count; j++){HSSFCell cell = (HSSFCell)row.CreateCell(j);if (dgv.Rows[i].Cells[j].Value == null){cell.SetCellType(CellType.Blank);}else{if (dgv.Rows[i].Cells[j].ValueType.FullName.Contains("System.Int32")){cell.SetCellValue(Convert.ToInt32(dgv.Rows[i].Cells[j].Value));}else if (dgv.Rows[i].Cells[j].ValueType.FullName.Contains("System.String")){cell.SetCellValue(dgv.Rows[i].Cells[j].Value.ToString());}else if (dgv.Rows[i].Cells[j].ValueType.FullName.Contains("System.Single")){cell.SetCellValue(Convert.ToSingle(dgv.Rows[i].Cells[j].Value));}else if (dgv.Rows[i].Cells[j].ValueType.FullName.Contains("System.Double")){cell.SetCellValue(Convert.ToDouble(dgv.Rows[i].Cells[j].Value));}else if (dgv.Rows[i].Cells[j].ValueType.FullName.Contains("System.Decimal")){cell.SetCellValue(Convert.ToDouble(dgv.Rows[i].Cells[j].Value));}else if (dgv.Rows[i].Cells[j].ValueType.FullName.Contains("System.DateTime")){cell.SetCellValue(Convert.ToDateTime(dgv.Rows[i].Cells[j].Value).ToString("yyyy-MM-dd"));}}}}for (int i = 0; i < dgv.Columns.Count; i++){sheet.AutoSizeColumn(i);}using (FileStream fs = new FileStream(sfd.FileName, FileMode.Create)){wb.Write(fs);}MessageBox.Show("導出成功!","導出提示",MessageBoxButtons.OK,MessageBoxIcon.Information);} } 2、調(diào)用

using System; using System.Data; using System.IO; using System.Text; using System.Windows.Forms; using NPOI.HPSF; using NPOI.HSSF; using NPOI.HSSF.UserModel; using NPOI.SS.UserModel;namespace NPOITest {public partial class Form1 : Form{public Form1(){InitializeComponent();}private void btnDataSource_Click(object sender, EventArgs e){MyDBase DB = new MyDBase(".","GoodLuck","sa","123456");DataSet DS = DB.GetRecordset("select * from View_s");dataGridView1.DataSource = DS.Tables[0];DB.DBClose();}private void btnExport_Click(object sender, EventArgs e){ExportExcel Et = new ExportExcel();Et.GridToExcel("人員單位", dataGridView1);}private void btnClose_Click(object sender, EventArgs e){this.Close();}} }


創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結

以上是生活随笔為你收集整理的NPOI 将DataGridView导出到Excel的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。