由于最近客户端不停抱怨,查询会宕机。
其实,这算是老问题了,主要原因是:Query性能不佳
由于该查询会使用到的Table事务量很大,容易会有Wait的现象到最后就TimeOut了。
查询数据量太大,目前是放到DataSet之后直接用GridView绑定。
其实,以上种种造成因素太多了。
再加上,查询出来的结果使用端整批下载或是自订下载成Excel。
最一开始的版本的使用Office原生的套件写到Excel,在网页TimeOut前的极限大约是6000~9000笔。
而,我接手以后我把它改成直接用Html Render出来,在网页TimeOut前的极限大约是10000~14000笔。
但是,这样还是有不少问题。
最后,最近开会主管提出一种方案,让使用者需要大量数据时,用离线的方式制作。
这样的好处有:SQL Command TimeOut 可以拉长。
不用再受限网页TimeOut的问题点。
可以避开高峰时间,让这些又臭又长的Query在深夜里享受性能。
好啦....既然决定要做总要改变用更好的工具吧!!
NPOI应该已经有很多人听闻过了,主管在前几天也刚好提到有一套第三方原件EPPlus。
网络上其实已经有人写过类似评测:皮尼网前走
上面那篇文章,看起来主要是网页版的时间比较,看起来EPPlus根本就是让NPOI看不到车尾灯。
但是,我要的是Console版的比较,就自己来学啦!!
我对NPOI和EPPlus其实都不熟,靠着范例&部分教学拼凑出来了以下结论。
我是使用官方最新版本1.2.4,NPOI只能存取Office 2003的版本,我的目的是有一个Templete,我们只把数据塞到各列中。
步骤一:将下载的DLL,加入至参考(此部分不另说明)。
步骤二:using NPOI.HSSF.UserModel;
using NPOI.HPSF;
using NPOI.POIFS.FileSystem;
using NPOI.SS.UserModel;
步骤三://将WorkBook指到我们原本设计好的Templete Book1.xls
using (IWorkbook wb = new HSSFWorkbook(new FileStream("D:/Book1.xls", FileMode.Open)))
//设定要使用的Sheet为第0个Sheet
ISheet TempSheet = wb.GetSheetAt(0);
int StartRow = 4;
//tDS为Query带回来的数据
for (int i = 0; i < tDS.Tables[0].Rows.Count; i++)
//第一个Row要用Create的<
【工具】Excel利器—NPOI VS EPPLUS由于最近客户端不停抱怨,查询会宕机。其实,这算是老问题了,主要原因是:Query性能不佳由于该查询会使用到的Table事务量很大,容易会有Wait的现象到最后就TimeOut了。查询数据量太大,目前是放到DataSet之后直接用GridView绑定。其实,以上种种造成因素太多了。再加上,查询出来的结果使用端整批下载或是自订下载成Excel。最一开...
f=xlrd.open_workbook("ceshi.xlsx") #获取工作簿下所有工作表的名称
s_names=f.sheet_names()
# print(s_names)
xsheet=f.sheet_by_name("ceshi") #根据工作表名称打开工作表
xsheet_rows_len=xsheet.nrows #获取工作表内有效行数
# print(xsheet_rows_len)
xsheet_cols_len=
1、在桌面程序中导入导出数据时会操作
Excel
文件,常用的第三方控件有N
POI
与
EPPlus
。
2、相对于N
POI
来说,
EPPlus
的API更加友好,导出数据的能力也比N
POI
更强大点。但在操作
Excel
的功能上还是N
POI
强一点(C#
N
POI
导出
Excel
和
EPPlus
导出
Excel
比较): 20列,N
POI
能导出4万数据,导出5万数据时报内存溢出。
EPPlus
能导出20万以上数据,导出23万测试时内存溢出。
3、如果想导出比较复杂的
Excel
的话可以使用N
POI
,但
N
POI
, 读取xls文件(
Excel
2003及之前的版本) (N
POI
.dll+Ionic.Zip.dll) http://n
poi
.codeplex.com/
EPPlus
, 读取xlsx文件(
Excel
2007版本) (
EPPlus
.dll) http://
epplus
.codeplex...
N
POI
是
POI
项目的 .NET 版本。
POI
是一个开源的Java读写
Excel
、WORD等微软OLE2组件文档的项目。
中文名N
POI
优势传统操作
Excel
遇到的问题构成读写OLE2文档基于LittleEndian的字节读写历史版本N
POI
2.1.1 2014/01/07
vc++全版本组件大全
VC++运行时(Visual C++ Runtime)是VC++开发环境中用于支持C和C++程序运行的基础库集合。这些库包含了执行C/C++程序所必需的基本函数和数据结构,例如内存管理、字符串操作、输入输出处理、异常处理等。VC++运行时库分为静态库和动态库两种形式,以适应不同类型的项目需求。
静态链接库
vs
动态链接库
静态链接库(Static Linking Libraries):在编译时,静态库的代码会被直接嵌入到最终生成的可执行文件中。这意味着每个使用静态库的程序都会包含库代码的一个副本,导致最终程序的体积较大,但不需要外部库文件支持即可独立运行。在VC++中,静态链接库的例子有LIBC.lib(用于单线程程序)和LIBCMT.lib(用于多线程程序)。
动态链接库(Dynamic Link Libraries):与静态链接相反,动态库的代码并不直接加入到应用程序中,而是在程序运行时被加载。这使得多个程序可以共享同一份库代码,节省了系统资源。VC++的动态运行时库主要通过msvcrt.dll(或其变体,如MSVCRTD.dll用于调试版本)实现,与之配套的导入库(Import Library)如CRTDLL.lib用于链接阶段。
运行时库的版本
VC++运行时库随着Visual Studio版本的更新而发展,每个版本都可能引入新的特性和优化,同时保持向后兼容性。例如,有VC++ 2005、2008、2010直至2019等多个版本的运行时库,每个版本都对应着特定的开发环境和Windows操作系统。
VC++运行时对于确保程序正确运行至关重要。当程序在没有安装相应运行时库的计算机上执行时,可能会遇到因缺失DLL文件(如MSVCP*.dll, VCRUNTIME*.dll等)而导致的错误。因此,开发完成后,通常需要分发相应的VC++ Redistributable Packages给最终用户安装,以确保程序能够在目标系统上顺利运行。
安装与部署
安装VC++运行时库通常是通过Microsoft提供的Redistributable Packages完成的,这是一个简单的过程,用户只需运行安装程序即可自动安装所需组件。对于开发者而言,了解和管理不同版本的运行时库对于确保应用程序的广泛兼容性和可靠性是必要的。
N
POI
(Non-Portability Options Interface)是一个用于操作
Excel
文件的开源库,它是C#版的
Excel
应用程序接口(API)。N
POI
提供了一个简单而强大的方式来读取、创建和修改
Excel
文件,可用于将数据导入到
Excel
文件中,或从
Excel
文件中提取数据等操作。
使用C#编程语言结合N
POI
库可以实现许多对
Excel
文件的操作,如读取文件内容、修改单元格信息、创建新的工作表、设置单元格样式等等。相比于其他类似的库,N
POI
具有一些独特的特点,例如可以通过索引或名称访问单元格、支持合并单元格、支持图表和图片等。这些特性方便了对
Excel
文件进行读写操作。
在使用N
POI
时,首先需要引入对应的命名空间,之后可以使用类似于创建工作簿、工作表和单元格、写入数据等方法来完成相应的操作。通过调用N
POI
提供的API,可以创建和保存
Excel
文件,也可以读取和修改现有的
Excel
文件。
总的来说,C#中的N
POI
库为我们提供了使用C#编程语言对
Excel
文件进行读写操作的功能。它简单易用,功能强大,适用于多种
Excel
操作场景,极大地方便了开发人员处理
Excel
文件的需求。无论是数据的导入导出,还是对
Excel
文件的批量修改,N
POI
都是一个不错的选择。