java npoi_NPOI的使用

java npoi_NPOI的使用简介 NPOI 是 POI APATCH 的一个开源项目 项目的 NET 版本 最初的 POI 只用于 JAVA 来操作 EXCELorWORD 等微软 OLE2 组件项目 使用 NPOI 可以完成在你没有安装 Office 或者相应环境的机器上对 WORD EXCEL 文档进行读写 使用案例分享 NPOI 针对 DATATABLE 导出 EXCEL 完成此任务应该准备的 DLL NPOI DLL 官网下载链接 http npoi

简介:NPOI是POI(APATCH的一个开源项目)项目的.NET版本,最初的POI只用于JAVA来操作EXCEL or WORD等微软OLE2组件项目。使用NPOI可以完成在你没有安装Office或者相应环境的机器上对WORD/EXCEL文档进行读写。

使用案例分享(NPOI针对DATATABLE导出EXCEL):

完成此任务应该准备的DLL:NPOI.DLL ,官网下载链接:http://npoi.codeplex.com/

1.将npoi.dll引用到项目的bin目录中:

e5a73e87126fe3fdc64fee5d9a733eb9.png

2.添加完成之后,代码例子开始:

(对于这种以后项目里可能会经常使用到的工具类,本人建议直接创建一个公共的Respository,相信你懂我的用意)

这里我创建了一个ExcelHelper.cs类,其中需要引用以下几个npoi相关的namespace

using NPOI.HSSF.UserModel;

using NPOI.SS.UserModel;

using NPOI.XSSF.UserModel;

导出的测试代码:(经过测试,可正常使用,这个方法需要优化的地方挺多,有兴趣的话可以自己拿去改善)

public static void TableToExcelForXLS(DataTable dt, string file,string entityName) //dt:你需要导出的数据,file:导出路径,entityName:实体名称

{

HSSFWorkbook hssfworkbook = new HSSFWorkbook();

ISheet sheet = hssfworkbook.CreateSheet(“Test”);

//表头

IRow row = sheet.CreateRow();

//for (int i = 0; i < dt.Columns.Count; i++)

//{

string[] str = { “a”, “b”, “c”, “d”, “e”, “f” };

string[] sysSelect = {“A”, “B”, “C”, “D”};

if (entityName == “XuDaxia”)

{

//表头

for (int j = ; j < str.Count(); j++)

{

ICell cell = row.CreateCell(j);

cell.SetCellValue(str[j]);

}

//数据

for (int i = ; i < dt.Rows.Count; i++)

{

IRow row1 = sheet.CreateRow(i + );

for (int j = ; j < dt.Columns.Count; j++)

{

ICell cell = row1.CreateCell(j);

cell.SetCellValue(dt.Rows[i][j].ToString());

}

}

}

else

{

//表头

for (int j = ; j < sysSelect.Count(); j++)

{

ICell cell = row.CreateCell(j);

cell.SetCellValue(sysSelect[j]);

}

//数据

for (int i = ; i < dt.Rows.Count; i++)

{

IRow row1 = sheet.CreateRow(i + );

for (int j = ; j < dt.Columns.Count; j++)

{

ICell cell = row1.CreateCell(j);

cell.SetCellValue(dt.Rows[i][j].ToString());

}

}

}

方法调用:

protected void btn_ExportExcel(object sender, ImageClickEventArgs e)

{

var name = DateTime.Now.ToString(“yyyyMMdd”) + new Random(DateTime.Now.Second).Next();//导出的Excel默认名称

var path = Server.MapPath(“XUDAXIA_TEST/” + name + “.xls”);//导出路径

var dt = list.ToDataTable();

string ef= “Xudaxia”;

ExcelHelper.x2003.TableToExcelForXLS(dt, path, ef); //2003 版Excel示例

downloadfile(path);

}

输出参数配置:

void downloadfile(string s_path)

{

System.IO.FileInfo file = new System.IO.FileInfo(s_path);

HttpContext.Current.Response.ContentType = “application/ms-download”;

HttpContext.Current.Response.Clear();

HttpContext.Current.Response.AddHeader(“Content-Type”, “application/octet-stream”);

HttpContext.Current.Response.Charset = “utf-8”;

HttpContext.Current.Response.AddHeader(“Content-Disposition”, “attachment;filename=” + System.Web.HttpUtility.UrlEncode(file.Name, System.Text.Encoding.UTF8));

HttpContext.Current.Response.AddHeader(“Content-Length”, file.Length.ToString());

HttpContext.Current.Response.WriteFile(file.FullName);

HttpContext.Current.Response.Flush();

HttpContext.Current.Response.Clear();

HttpContext.Current.Response.End();

}

.NET Core 首例 Office 开源跨平台组件(NPOI Core)

前言 最近项目中,需要使用到 Excel 导出,找了一圈发现没有适用于 .NET Core的,不依赖Office和操作系统限制的 Office 组件,于是萌生了把 NPOI 适配并移植到 .NET C …

免费高效实用的.NET操作Excel组件NPOI(.NET组件介绍之六)

很多的软件项目几乎都包含着对文档的操作,前面已经介绍过两款操作文档的组件,现在介绍一款文档操作的组件NPOI. NPOI可以生成没有安装在您的服务器上的Microsoft Office套件的Excel …

C#通过NPOI操作Excel

参考页面: http://www.yuanjiaocheng.net/webapi/create-crud-api-1-post.html http://www.yuanjiaocheng.net/w …

基于NPOI的Excel数据导入

从Excel导入数据最令人头疼的是数据格式的兼容性,特别是日期类型的兼容性.为了能够无脑导入日期,折腾了一天的NPOI.在经过测试确实可以导入任意格式的合法日期后,写下这篇小文,与大家共享.完整代码请 …

NPOI导出Excel

using System;using System.Collections.Generic;using System.Linq;using System.Text;#region NPOIusing …

通过NPOI操作Excel

最近在做的一个项目中需要生成Excel,通过学习使用NPOI实现了相关需求,写了一个简便操作的类,记录如下: public class NPOIHelperForExcel { #region exc …

.Net开源Excel、Word操作组件-NPOI、EPPlus、DocX

一.NPOI 简介: NPOI is the .NET version of POI Java project. With NPOI, you can read/write Office 2003/2 …

转载 NPOI Excel 单元格背景颜色对照表

NPOI Excel 单元格颜色对照表,在引用了 NPOI.dll 后可通过 ICellStyle 接口的 FillForegroundColor 属性实现 Excel 单元格的背景色设置,FillP …

转载 NPOI.dll 用法。单元格,样式,字体,颜色,行高,宽度。读写excel

我用的版本是1.25的.每个版本用法有一点不同 using System; using System.Collections.Generic; using System.ComponentModel; …

NPOI操作EXCEL(六)——矩阵类表头EXCEL模板的解析

哈哈~~~很高兴还活着.总算加班加点的把最后一类EXCEL模板的解析做完了… 前面几篇文章介绍了博主最近项目中对于复杂excel表头的解析,写得不好,感谢园友们的支持~~~ 今天再简单讲诉一下另一 …

随机推荐

H3 BPM让天下没有难用的流程之技术特性

一.集成性  H3 BPM可以与其它系统进行多个层面的集成,满足企业的针对不同系统的集成需求. 图:多种集成维度 Ø  用户集成 可与企业现有系统进行组织架构同步或调用,也可以直接与AD 进行集成. …

(转)Sql日期时间格式转换

sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-0 …

JS &;&; JSON

将Json字符串转为Json对象以下3种方式: eval(‘(‘ + str + ‘)’); JSON.parse(str); jQuery.parseJSON(str): 将Json对象转为字符串: …

mount –bind 重启后失效的解决办法

vsftp不支持软链接,可以用mount来支持不同的目录结构 mount –bind /home/www/web/ROOT/img/upload /ftp/private/upload 重启后失效. …

AngularJS的路由、模块、依赖注入

AngularJS的路由在实际应用中更多是由另外封装好的angular-ui-router.js实现的! 为什么不用Ajax而要用前端路由?

asp.net上传控件使用

protected void Button1_Click(object sender, EventArgs e) { string str = “”; if (FileUpload …

大型网站技术架构 核心原理与案例分析 pdf

需要的小伙伴拿去,哈哈.百度云链接:https://pan.baidu.com/s/1hsuiM3q

TextureView+SurfaceTexture+OpenGL ES来播放视频(二)

引自:http://www.jianshu.com/p/b2d949ab1a1a 在使用OpenGL ES 绘制前,我先概括下接下来要做的工作:我先借用一个博主kiffa举的的一个栗子,我觉得说的恰到 …

IWorkSpace接口介绍

IWorkspace接口提供访问工作空间的通用属性和方法,如它的连接属性,以及包含的数据集的方法. 如何打开一个数据库  要打开一个数据库,也就意味着我们要得到那个工作空间,而工作空间是一个普通类,也 …

[LeetCode&;Python] Problem 349. Intersection of Two Arrays

Given two arrays, write a function to compute their intersection. Example 1: Input: nums1 = [1,2,2,1 …

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/212453.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午8:01
下一篇 2026年3月18日 下午8:01


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号