NPOI操作之Excel文件的导入和导出


 1  public static DataTable ExcelToDataTable(string filePath)
2 {
3 DataTable dt = new DataTable();
4
5 HSSFWorkbook hssfworkbook;
6 using (FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read))
7 {
8 hssfworkbook = new HSSFWorkbook(file);
9 }
10 ISheet sheet = hssfworkbook.GetSheetAt(0);
11 System.Collections.IEnumerator rows = sheet.GetRowEnumerator();
12
13 IRow headerRow = sheet.GetRow(0);
14 int cellCount = headerRow.LastCellNum;
15
16 for (int j = 0; j < cellCount; j++)
17 {
18 ICell cell = headerRow.GetCell(j);
19 dt.Columns.Add(cell.ToString());
20 }
21
22 for (int i = (sheet.FirstRowNum + 1); i <= sheet.LastRowNum; i++)
23 {
24 IRow row = sheet.GetRow(i);
25 DataRow dataRow = dt.NewRow();
26 if (row == null)
27 {
28 break;
29 }
30 for (int j = row.FirstCellNum; j < cellCount; j++)
31 {
32 if (row.GetCell(j) != null)
33 dataRow[j] = row.GetCell(j).ToString();
34 }
35
36 dt.Rows.Add(dataRow);
37 }
38 return dt;
39 }

导出到excel


 1 public static MemoryStream DataToExcel(DataTable dt)
2 {
3 MemoryStream ms = new MemoryStream();
4 using (dt)
5 {
6 IWorkbook workbook = new HSSFWorkbook();//创建excel工作簿
7 ISheet sheet = workbook.CreateSheet();//在该表中创建工作表
8 IRow headerRow = sheet.CreateRow(0); //在表中添加一行
9 foreach (DataColumn column in dt.Columns)
10 headerRow.CreateCell(column.Ordinal).SetCellValue(column.Caption);
11 int rowIndex = 1;
12 foreach (DataRow row in dt.Rows)
13 {
14 IRow dataRow = sheet.CreateRow(rowIndex);
15 foreach (DataColumn column in dt.Columns)
16 {
17 dataRow.CreateCell(column.Ordinal).SetCellValue(row[column].ToString());
18 }
19 rowIndex++;
20 }
21 workbook.Write(ms);
22 ms.Flush();
23 ms.Position = 0;
24 }
25 return ms;
26 }

接着


1 MemoryStream ms = ExcelHelper.DataToExcel(dt);
2 FileStream fs = new FileStream("e:\\2.xls", FileMode.Create);
3 ms.WriteTo(fs);
4 fs.Close();
5 ms.Close();

时间: 2024-10-04 12:32:01

NPOI操作之Excel文件的导入和导出的相关文章

poi excel文件的导入

使用poi来实现excel文件的导入导出.使用struts2来做处理. 首先看jsp页面: index.jsp: <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib uri="/struts-tags" prefix="s"%> <!DOCTYPE HTML PUBLIC

excel 文件的导入

excel 文件的导入 1.\extra_apps\xadmin\plugins下,添加一个文件 excel.py 添加以下代码: import xadminfrom xadmin.views import BaseAdminPlugin,ListAdminViewfrom django.template import loader # excel 导入class ListImportExclePlugin(BaseAdminPlugin): import_excel = False def i

SSM excel文件的导入导出

对于excel文件的导入导出,后台接收读取和建表封存都是固定死的,所以对于excel导入时,excel文件内容必须匹配后台相关对象,不然报错. excel文件导出,用<a><a/>标签即可,通过后台去完成 ,不可用ajax去写导出,ajax请求只是个"字符型"的请求,即请求的内容是以文本类型存放的. 文件的下载是以二进制形式进行的,ajax没法解析后台返回的文件流,所以无法处理二进制流response输出来下载文件. 当获取前台导入这个命令后,会通过Mybati

C#创建Excel文件并将数据导出到Excel文件

C#创建Excel文件,这里实际上是从资源中提取一个事先创建好的Excel文件,文件提取成功后,使用OleDb方法连接Excel,向Excel文件中写入数据. 创建解决方案 菜单>新建>项目>Windows窗体应用程序: 添加相关组件: 添加两个DataGridView,一个TextBox,两个按钮 ,如下图: 添加Excel资源: 先在文件夹中新建一个Excel文件,在Sheet1表的第一行设置列名: 双击"Resources.resx"文件打开资源文件视图: 添加

oracle dmp文件的导入与导出

dmp文件的导入与导出: 整库的导入导出 1.从远程机器上导出expdp npmdb/[email protected] schemas=NPMDB directory=MY_DIR dumpfile=npmdb_87.dmp 参数说明schemas:可以看成是数据库名,directory:存放dmp,log文件的目录,dumpfile:导出的dmp文件名注:directory目录的创建create directory data_pump_dir as '/opt/data/oracle_tmp

根据NPOI 读取一个excel 文件的多个Sheet

大家都知道NPOI组件可以在你本地没有安装office的情况下来 读取,创建excel文件.但是大家一般都是只默认读取一个excel文件的第一个sheet.那么如果要读取一个excel 的所有sheet 要怎么做呢? 下面就来告诉大家如何操作NPOI 读取excel 的所有sheet. 首先我们先讲解操作excel 单独创建的一个类,我命名为 EXECLHELP using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.XSSF

C#中实现excel文件批量导入access数据表中

一 .界面简单设计如下: 二 .代码如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.OleDb; using System.Data.S

Python 操作 MS Excel 文件

利用 Python 对 Excel 文件进行操作需要使用第三方库: openpyxl,可执行 pip install openpyxl 进行安装 1. 导入 openpyxl 模块 导入 openpyxl 模块后,利用它的 load_workbook() 方法可以打开一个 Excel 文件,该方法使用一个文件名称作为参数,示例如下: >>> import openpyxl >>> wb = openpyxl.load_workbook('example.xlsx') &

java项目中Excel文件的导入导出

1 package poi.excel; 2 3 import java.io.IOException; 4 import java.io.InputStream; 5 import java.io.OutputStream; 6 import java.lang.reflect.Field; 7 import java.lang.reflect.Method; 8 import java.util.ArrayList; 9 import java.util.List; 10 11 import