zoukankan      html  css  js  c++  java
  • DataGridView数据用NPOI导出到Excel

    /// <summary>
    /// DataGridView数据用NPOI导出到Excel
    /// </summary>
    /// <param name="fileName">Excel文件名</param>
    /// <param name="dgv">DataGridView数据</param>
    public static 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();
    ISheet sheet = wb.CreateSheet(fileName);
    IRow headRow = sheet.CreateRow(0);
    for (int i = 0; i < dgv.Columns.Count; i++)
    {
    headRow.CreateCell(i).SetCellValue(dgv.Columns[i].HeaderText);
    }
    for (int i = 0; i < dgv.Rows.Count; i++)
    {
    IRow row = sheet.CreateRow(i + 1);
    for (int j = 0; j < dgv.Columns.Count; j++)
    {
    ICell cell = row.CreateCell(j);
    if (dgv.Rows[i].Cells[j].Value == DBNull.Value)
    {
    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);
    }
    //成功提示
    if (MessageBox.Show("导出成功,是否立即打开?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
    {
    System.Diagnostics.Process.Start(sfd.FileName);
    }


    }

  • 相关阅读:
    java中Collection 与Collections的区别
    Bridge桥接模式(设计模式11)
    动态代理模式(设计模式10)
    代理模式(静态代理)(设计模式9)
    适配器模式(工厂模式8)
    原型模式(工厂模式7)
    建造者模式(工厂模式6)
    抽象工厂模式(工厂模式5)
    工厂模式(工厂模式4)
    简单工厂模式(工厂模式3)
  • 原文地址:https://www.cnblogs.com/wwwlzp/p/13596691.html
Copyright © 2011-2022 走看看