• C# 导入导出


    /1、要把文件加载到程序中
    //2、获取sheet
    //3、获取所有行
    //4、获取行中所有的数据
    //5、将获取到的数据,按照原有的数据格式,存储到一个数据容器中


    OpenFileDialog ofd = new OpenFileDialog();
    ofd.Filter = "Excel(*.xlsx)|*.xlsx";
    if (ofd.ShowDialog() != DialogResult.OK)
    {
    return;
    }
    //创建一个数据表,用来存储 从Excel中导入的数据
    DataTable dt = new DataTable();

    //得到Excel文件地址 是包含路径的fileName
    string excelFilePath = ofd.FileName;
    //创建一个工作簿 2007版本及以上 使用XSSFWorkbook ,2007以前的版本 使用 使用HSSFWorkbook
    IWorkbook workbook = new XSSFWorkbook(excelFilePath);
    //创建一个sheet ,用来存储Excel中的一个Sheet
    //ISheet sheet = workbook.GetSheet("Sheet1");//根据sheet的名字获取
    ISheet sheet = workbook.GetSheetAt(0);//根据sheet的索引,索引从0开始
    //创建一个Row 存储第一行有效数据,通常 有可能是标题行
    IRow row = sheet.GetRow(sheet.FirstRowNum);
    //处理标题行, 遍历标题行中所有的单元格(Cell),每个单元格的值 即为列名
    foreach (ICell item in row.Cells)
    {
    //往DataTable中添加Excel中对应的列的值
    object cellValue = this.GetCellValueByType(item);
    string columnName = "";//DataTable的列明
    if (cellValue == null || cellValue.ToString() =="")
    {
    columnName = "column" + dt.Columns.Count;//默认名
    }
    else
    {
    columnName = cellValue.ToString();//具体值单元格值 作为名字
    }
    dt.Columns.Add(columnName);
    }
    //遍历所有的有效数据 并将有效数据 添加到DataTable
    for (int i = sheet.FirstRowNum+1; i <= sheet.LastRowNum; i++)
    {
    IRow dataRow = sheet.GetRow(i);
    DataRow dr = dt.NewRow();// 创建与dt表具有相同架构的新数据行(Row)
    for (int j = 0; j < dataRow.Cells.Count; j++)
    {
    dr[j] = this.GetCellValueByType( dataRow.Cells[j]);
    }
    dt.Rows.Add(dr);//向dt数据表中添加一个数据行
    }
    //将导入的数据表 绑定到dataGridView1
    dataGridView1.DataSource = dt;
    }

    -----------------------------导出

    IWorkbook wordbook = new XSSFWorkbook();
    ISheet sheet = wordbook.CreateSheet("Sheet1");
    IRow row = sheet.CreateRow(0);
    row.CreateCell(0).SetCellValue("姓名");
    row.CreateCell(1).SetCellValue("性别");
    row.CreateCell(2).SetCellValue("年龄");
    for (int i = 0; i < dt.Rows.Count; i++)
    {
    row = sheet.CreateRow(i+1);
    row.CreateCell(0).SetCellValue(dt.Rows[i]["姓名"].ToString());
    row.CreateCell(1).SetCellValue(dt.Rows[i]["性别"].ToString());
    row.CreateCell(2).SetCellValue(Convert.ToInt32(dt.Rows[i]["年龄"]));
    }
    using (FileStream fs = new FileStream(excelFileSavePath, FileMode.Create, FileAccess.Write))
    {
    wordbook.Write(fs);
    }
    MessageBox.Show("导出完成");

  • 相关阅读:
    【原创】主机不能访问虚拟机CentOS7中的站点
    phpStudy中MySQL版本升级到5.7.17方法
    phpStudy for Linux (lnmp+lamp一键安装包)
    Linux的wget命令详解【转载】
    重置密码解决MySQL for Linux错误 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
    mysql5.7密码过期ERROR 1862 (HY000): Your password has expired. To log in you must change
    电赛菜鸟营培训(二)——STM32F103CB之中断控制
    电赛菜鸟营培训(零)——Keil环境搭建
    电赛菜鸟营培训(一)——STM32F103CB之LED控制
    AppInventor学习笔记(四)——打地鼠应用学习
  • 原文地址:https://www.cnblogs.com/ShenJA/p/11234443.html
Copyright © 2020-2023  润新知