首页 > 编程语言 >C#使用NPOI读取模板生成EXCEL

C#使用NPOI读取模板生成EXCEL

时间:2023-09-15 16:11:47浏览次数:36  
标签:sheet C# EXCEL NPOI workbook rowSource var col row

 

C#使用NPOI读取模板生成EXCEL

  string currentDirectory = System.AppDomain.CurrentDomain.BaseDirectory;
  // 读取Excel模板文件
  FileStream fs = new FileStream(currentDirectory + "BoxPackinglist.xlsx", FileMode.Open, FileAccess.Read);
  XSSFWorkbook workbook = new XSSFWorkbook(fs);

  //模板中的sheet页
  ISheet sheetTemp = workbook.GetSheet("Sheet1");

  #region 创建sheet
  sheetTemp.CopySheet(“新sheet页名字”);
  ISheet sheet = workbook.GetSheet(“新sheet页名字”);
  #endregion


  #region 写入数据
  sheet.GetRow(0).GetCell(0).SetCellValue("Packinglist ");
  sheet.GetRow(4).GetCell(7).SetCellValue("N.W 总净重 :" + item.netweightsum + "KG");
  sheet.GetRow(4).GetCell(10).SetCellValue("G.W 总毛重:" + item.grossweightsum + "KG");
  #endregion


  //开始插入行索引从第八行开始复制插入行(带格式)
  int startRow = 8;
  //插入5行
  sheet.ShiftRows(startRow, sheet.LastRowNum, 5, true, false);

  for (int row = startRow - 1; row < startRow + 4; row++)

  {
    if(row >= startRow)
    {
      var rowSource = sheet.GetRow(7);
      var rowStyle = rowSource.RowStyle;//获取当前行样式
      var rowInsert = sheet.CreateRow(row);
      if (rowStyle != null)
        rowInsert.RowStyle = rowStyle;
      rowInsert.Height = rowSource.Height;

      for (int col = 0; col < rowSource.LastCellNum; col++)
      {
        var cellsource = rowSource.GetCell(col);
        var cellInsert = rowInsert.CreateCell(col);
        var cellStyle = cellsource.CellStyle;
        //设置单元格样式    
        if (cellStyle != null)
          cellInsert.CellStyle = cellsource.CellStyle;
      }
    }

  }

 

  workbook.RemoveSheetAt(0);
  // 保存文件并关闭FileStream
  fs.Close();

  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  workbook.Write(baos);
  byte[] bt = baos.ToByteArray();
  string base64Str = Convert.ToBase64String(bt);

标签:sheet,C#,EXCEL,NPOI,workbook,rowSource,var,col,row
From: https://www.cnblogs.com/jiangyuhu/p/17705255.html

相关文章

  • P3933 Chtholly Nota Seniorious
    原题是一个完全不困难的题,但里面一个性质没有想到QwQ性质:最大值一定在两个部分之一(显然)于是我们二分答案后,\(O(n^2)\)的找到从左下角开始包含最大值且极差\(\leqx\)的所能覆盖的最大区域,然后判断另一个区域极差是否\(\leqx\)即可不一定从左下角开始?旋转\(4\)次做\(4\)次即......
  • Oracle新建DBLINK
    如果没有创建DBLINK的权限,先授个权:grantCREATEPUBLICDATABASELINK,DROPPUBLICDATABASELINKto用户;然后在当前用户下建立DBLINK:createpublicdatabaselink DBLINK名字connectto用户名 identifiedby "密码"using'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=......
  • Dynamics CRM - 使用 JS 对字段取值、赋值、实体属性设置等
    整理下平时CRM开发中用到的一些基本的js操作取值:varoResult=Xrm.Page.getAttribute(sFieldName).getValue();varoResult=Xrm.Page.getControl(sFieldName).getAttribute().getValue();赋值:一般类型:Xrm.Page.getAttribute(sFieldName).setValue(object);OptionSe......
  • Dynamic CRM后端增删改查,带事务提交回滚的实现
    1.引用类库程序集usingMicrosoft.Xrm.Sdk.Messages;2.创建实例ExecuteTransactionRequestrequestToSaveRecords=newExecuteTransactionRequest(){Requests=newOrganizationRequestCollection(),......
  • CF1828A
    DivisibleArray题面翻译构造一个长度为\(n\)的序列\(a\)满足以下条件。对于每个元素\(a_i\)满足\(a_i\le1000\)。对于每个元素\(a_i\)满足\(a_i\equiv0\pmodi\)。即每个元素\(a_i\)能被\(i\)整除。满足\(\sum_{i=1}^{n}a_i\equiv0\pmodn\)。即......
  • 6576: 点的距离 倍增LCA
    描述 给定一棵n个点的树,Q个询问,每次询问点x到点y两点之间的距离。 输入 第一行一个正整数n,表示这棵树有n个节点;接下来n−1行,每行两个整数x,y表示x,y之间有一条连边;然后一个整数Q,表示有Q个询问;接下来Q行每行两个整数x,y表示询问x到y的距......
  • 【接口自动化测试】Eolink Apilkit 安装部署,支持 Windows、Mac、Linux 等系统
    EolinkApikit有三种客户端,可以依据自己的情况选择。三种客户端的数据是共用的,因此可以随时切换不同的客户端。我们推荐使用新推出的ApikitPC客户端,PC端拥有线上产品所有的功能,并且针对本地测试、自动化测试以及使用体验等方面进行了强化,可以提供最佳的使用感受。建议对......
  • UnicodeEncodeError: 'gbk' codec can't encode character '\ufffd' in positio
    写入文件报错UnicodeEncodeError:'gbk'codeccan'tencodecharacter'\ufffd'inposition2494:illegalmultibytesequence 解决方法  withopen('./abc.html','w',encoding='utf-8')asfp: fp.write(respone......
  • C#桌面应用程序多语言编程
    当我们的软件需要在国外应用时,就需要将软件界面的文字切换成相应国家的语言,这时就需要实现软件界面的多语言,也称为国际化,本篇博客讲的是C#的多语言版本的实现。本篇博客分别讲解如下内容:主窗体的多语言实现自定义窗体的多语言实现自定义控件的多语言实现MessageBox对话框的多语言......
  • Dynamic CRM 字段数据类型及其后端赋值方式
    dynamiccrm字段数据类型及其赋值方式首先实例化一个对象:Entity_entity=newEntity("salesorder");1.十进制数取值:var_typeDecimal=_entity.GetAttributeValue<decimal>("unitprice");赋值:_entity["unitpri......