LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

[点晴永久免费OA]C# 使用NPOI 实现Excel的简单导入导出

admin
2020年4月3日 22:36 本文热度 2978
private void btnImport_Click(object sender, EventArgs e)
  {
      DataSet ds = new DataSet();
      DataTable dt = null;

      OpenFileDialog sflg = new OpenFileDialog();
      sflg.Filter = "Excel(*.xls)│*.xls│Excel(*.xlsx)│*.xlsx";
      if (sflg.ShowDialog() == System.Windows.Forms.DialogResult.Cancel)
      {
          return;
      }
      FileStream fs = new FileStream(sflg.FileName, FileMode.Open, FileAccess.Read);
      NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook(fs);
      int sheetCount = book.NumberOfSheets;
      for (int sheetIndex = 0; sheetIndex < sheetCount; sheetIndex++)
      {
          NPOI.SS.UserModel.ISheet sheet = book.GetSheetAt(sheetIndex);
          if (sheet == null) continue;
          
          NPOI.SS.UserModel.IRow row = sheet.GetRow(0);
          if (row == null) continue;

          int firstCellNum = row.FirstCellNum;
          int lastCellNum = row.LastCellNum;
          if (firstCellNum == lastCellNum) continue;

          dt = new DataTable(sheet.SheetName);
          for (int i = firstCellNum; i < lastCellNum; i++)
          {
              dt.Columns.Add(row.GetCell(i).StringCellValue, typeof(string));
          }

          for (int i = 1; i <= sheet.LastRowNum; i++)
          {
              DataRow newRow = dt.Rows.Add();
              for (int j = firstCellNum; j < lastCellNum; j++)
              {
                  newRow[j] = sheet.GetRow(i).GetCell(j).StringCellValue;
              }
          }

          ds.Tables.Add(dt);
      }           
  }

  private void btnExport_Click(object sender, EventArgs e)
  {
      SaveFileDialog sflg = new SaveFileDialog();
      sflg.Filter = "Excel(*.xls)│*.xls│Excel(*.xlsx)│*.xlsx";
      if (sflg.ShowDialog() == System.Windows.Forms.DialogResult.Cancel)
      {
          return;
      }
      //this.gridView1.ExportToXls(sflg.FileName);
      //NPOI.xs book = new NPOI.HSSF.UserModel.HSSFWorkbook();
      NPOI.SS.UserModel.IWorkbook book = null;
      if (sflg.FilterIndex == 1)
      {
          book = new NPOI.HSSF.UserModel.HSSFWorkbook();
      }
      else
      {
          book = new NPOI.XSSF.UserModel.XSSFWorkbook();
      }

      NPOI.SS.UserModel.ISheet sheet = book.CreateSheet("test_001");

      // 添加表头
      NPOI.SS.UserModel.IRow row = sheet.CreateRow(0);
      int index = 0;
      foreach (GridColumn item in this.gridView1.Columns)
      {
          if (item.Visible)
          {
              NPOI.SS.UserModel.ICell cell = row.CreateCell(index);
              cell.SetCellType(NPOI.SS.UserModel.CellType.String);                    
              cell.SetCellValue(item.Caption);
              index++;
          }
      }

      // 添加数据
     
      for (int i = 0; i < this.gridView1.DataRowCount; i++)
      {
          index = 0;
          row = sheet.CreateRow(i + 1);
          foreach (GridColumn item in this.gridView1.Columns)
          {
              if (item.Visible)
              {
                  NPOI.SS.UserModel.ICell cell = row.CreateCell(index);
                  cell.SetCellType(NPOI.SS.UserModel.CellType.String);
                  cell.SetCellValue(this.gridView1.GetRowCellValue(i, item).ToString());
                  index++;
              }
          }
      }
      // 写入 
      System.IO.MemoryStream ms = new System.IO.MemoryStream();
      book.Write(ms);
      book = null;

      using (FileStream fs = new FileStream(sflg.FileName, FileMode.Create, FileAccess.Write))
      {
          byte[] data = ms.ToArray();
          fs.Write(data, 0, data.Length);
          fs.Flush();
      }

      ms.Close();
      ms.Dispose();
  }

该文章在 2020/4/3 22:37:31 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved