欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  新闻

npoi导出excel乱码(npoi导出excel的格式)

程序员文章站 2022-07-06 21:47:16
此方式会通过3篇文章将关于excel的一些日常操作给实现出来,分别为:读取、写入、格式设置等;让其可以满足我们的日常工作需求。本篇要记录的是使用npoi创建excel文件并将数据写入。实现功能:使用n...

此方式会通过3篇文章将关于excel的一些日常操作给实现出来,分别为:读取、写入、格式设置等;让其可以满足我们的日常工作需求。

本篇要记录的是使用npoi创建excel文件并将数据写入。

npoi导出excel乱码(npoi导出excel的格式)

实现功能:

使用npoi的方式将datagridview中的数据导出到excel

开发环境:

开发工具: visual studio 2013

.net framework版本:4.5

实现代码:

首先需要导入以下命名空间:

using npoi.hssf.usermodel;
using npoi.hssf.util;
using npoi.ss.usermodel;
using npoi.ss.util;
using npoi.xssf.usermodel;
using system.io;
   datatable dt = datagridview1.datasource as datatable;

   //指定excel所在路径
   string excelpath = "d:\2.xlsx";

   //以文件流创建excel文件
   filestream fs = new filestream(excelpath, filemode.openorcreate, fileaccess.readwrite);
   //offic2007以上
   iworkbook workbook = new xssfworkbook();
   //offic2007以下
   if (excelpath.tolower().endswith(".xls"))
   {
       workbook = new hssfworkbook();
   }
   //创建一个sheet页
   isheet sheet = workbook.createsheet("sheet1");
   
   //创建第一行数据并将表头写进去
   irow rowhead = sheet.createrow(0);
   for (int j = 0; j < dt.columns.count; j++)
   {
       rowhead.createcell(j).setcellvalue(dt.columns[j].columnname);

   }
  
   //将数据逐行写入
   for (int i = 0; i < dt.rows.count; i++)
   {
       irow row = sheet.createrow(i + 1);
       for (int j = 0; j < dt.columns.count; j++)
       {
           row.createcell(j).setcellvalue(convert.tostring(dt.rows[i][j]));
       }
   }
   workbook.write(fs);
   //资源释放
   workbook.close();

至此,一个简单地导入excel功能就完成了,下一篇介绍下关于设置excel样式的一些操作。