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);
    }


    }

  • 相关阅读:
    烯烃(olefin) 题解
    二分图的考验 题解
    树上的好题
    [SDOI2013]直径 题解
    [ZJOI2010]数字计数 题解
    神在夏至祭降下了神谕 题解
    洛谷 P4198 楼房重建 题解
    [HAOI2010]软件安装 题解
    [POI2011]ROT-Tree Rotations 题解
    可并堆之左偏树浅谈
  • 原文地址:https://www.cnblogs.com/wwwlzp/p/13596691.html
Copyright © 2011-2022 走看看