NPOI用WorkbookFactory读写 2007以上格式文件(xlsx)
//我用的最新的2.2.1版本
//第一步:引用DLL,5个全导入,包括ICSHARP.ZIP,是个开源压缩工具包。XLSX是压缩格式,需要它来解压
//第二部:
using NPOI.SS.UserModel;
//够了
//第三部:用IWorkbook 接口,+WorkbookFactory类
//第四步:读取xlsx文件内容
StringBuilder sb = new StringBuilder();
using (FileStream fs = new FileStream(@"D:\temp\temp.xlsx", FileMode.Open, FileAccess.Read))
{
IWorkbook sswb = WorkbookFactory.Create(fs);
for(int i=0;i<sswb.NumberOfSheets;i++)
{
sb.Append("\r\n\r\n"+sswb.GetSheetName(i)+"\r\n"); ISheet sh = sswb.GetSheetAt(i);
for (int j = 0; j < sh.LastRowNum; j++)
{
IRow row = sh.GetRow(j);//读取当前行
if(row!=null)
{
sb.Append("\r\n----------------line"+j.ToString()+"--------------------------\r\n");
for (int k = 0; k < row.LastCellNum; k++)
{
ICell cell = row.GetCell(k);
if(cell!=null)
{
sb.Append(cell.ToString()+"|");
}
}
}
}
}
}
textBox1.Text = sb.ToString();
//第五步:写入xlsx文件
string file = @"D:\temp\test.xlsx";
IWorkbook wb = null;
using (FileStream fs = File.Open(file, FileMode.Open, FileAccess.Read,FileShare.Read))
{
wb = WorkbookFactory.Create(fs);
fs.Close();
}
ISheet sh = wb.GetSheetAt(0);
IRow row = sh.CreateRow(8);
ICell cell = row.CreateCell(0);
cell.SetCellValue(1);
using (FileStream fs = File.Open(file, FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
wb.Write(fs);
fs.Close();
}
System.Diagnostics.Process.Start(Path.GetFullPath(file));
编译,运行不会有错误提示,如愿生成了
D:\temp\test.xlsx
但生成的文件打不开,提示“发现不可读取内容, xxxOOO..."
那么解决办法是......
答案是:等待下一个版本吧!NPOI还不支持xlsx格式的输出,读取是没有问题的。
对不起,我承认,我标题党了,:),NPOI还不支持XLSX文件输出。
NPOI用WorkbookFactory读写 2007以上格式文件(xlsx)的更多相关文章
- asp.net NPOI导出xlsx格式文件,打开文件报“Excel 已完成文件级验证和修复。此工作簿的某些部分可能已被修复或丢弃”
NPOI导出xlsx格式文件,会出现如下情况: 点击“是”: 导出代码如下: /// <summary> /// 将datatable数据写入excel并下载 /// </summa ...
- JAVA用geotools读写shape格式文件
转自:http://toplchx.iteye.com/blog/1335007 JAVA用geotools读写shape格式文件 (对应geotools版本:2.7.2) (后面添加对应geotoo ...
- SpringBatch Sample (四)(固定长格式文件读写)
前篇关于Spring Batch的文章,讲述了Spring Batch 对XML文件的读写操作. 本文将通过一个完整的实例,与大家一起讨论运用Spring Batch对固定长格式文件的读写操作.实例延 ...
- 使用Spark读写CSV格式文件(转)
原文链接:使用Spark读写CSV格式文件 CSV格式的文件也称为逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号.在本文中的CSV格 ...
- 2013xlsm格式文件处理
2013xlsm格式文件处理 2013格式的xlsm文件在低版本打开为空白的处理 1.关闭2013的宏2.打开文件,另存(去打开密码)3.2007打开另存(格式已变为2007)4.仅破解VBA密码5. ...
- [OSG][转]osg格式文件
转自:http://blog.csdn.net/timothyfly/article/details/7826139 osg格式文件中如何处理多个节点共享一个子节点 下面一段程序中,共有三个Group ...
- (转载)DBGridEh导出Excel等格式文件
DBGridEh导出Excel等格式文件 uses DBGridEhImpExp; {--------------------------------------------------------- ...
- RTF格式文件浅析
ps:这两天在分析从微软的word复制一个绕排环绕的表格到openoffice的writer中去的bug,需要了解RTF... RTF是Rich TextFormat的缩写,意即多文本格式.这是一种类 ...
- python之文件的读写和文件目录以及文件夹的操作实现代码
这篇文章主要介绍了python之文件的读写和文件目录以及文件夹的操作实现代码,需要的朋友可以参考下 为了安全起见,最好还是给打开的文件对象指定一个名字,这样在完成操作之后可以迅速关闭文件,防止一些无用 ...
随机推荐
- vue2.x源码理解
也不知道哪股风潮,钻研源码竟成了深入理解的标配.我只想说一句,说的很对 准备工作 从GitHub上面下载vue的源码(https://github.com/vuejs/vue) 了解下Flow,Flo ...
- 灵活使用rewrite
Nginx提供的全局变量或自己设置的变量,结合正则表达式和标志位实现url重写以及重定向.rewrite只能放在server{},location{},if{}中,并且只能对域名后边的除去传递的参数外 ...
- opengl in medical imaging
医学可视化 http://schorsch.efi.fh-nuernberg.de/roettger/index.php/Lectures/MedicalVisualization http://ww ...
- Java线程池技术以及实现
对于服务端而言,经常面对的是客户端传入的短小任务,需要服务端快速处理并返回结果.如果服务端每次接受一个客户端请求都创建一个线程然后处理请求返回数据,这在请求客户端数量少的阶段看起来是一个不错的选择,但 ...
- java引用问题(—)
为了美观起见,将说明性问题用注释引起来,这样只是为了美观 基本的类型只有一块存储空间(stack中),而引用类型在内存中有两块存储空间(stack和heap中). public class test ...
- YCSB-mapkeeper
首先 https://github.com/brianfrankcooper/YCSB/issues/885 最终是使用ycsb-0.1.4 版本进行,这个版本自带jar包 https://githu ...
- PHP中的关系判断和注释
== 只判断内容,不判断类型=== 全等于,即判断内容,又判断类型 != 不等于,只判断内容,不判断类型 !== 全不等于,即判断内容,又判断类型
- hdu-5358 First One(尺取法)
题目链接: First One Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Other ...
- Nginx基本配置和作用
nginx可以重新加载文件的.我们直接运行:nginx -s reload 配置文件有没有问题,可以直接输入:nginx -t nginx -s stop就可以关闭 但有时我们就不想它挂的时候访问另外 ...
- poj1236学校网络——连通块
题目:http://poj.org/problem?id=1236 通过传输文件的特点可以看出要先求强联通分量,缩点: 问题1:即缩点后入度为0的点,从它们开始传文件可以传给所有学校: 问题2:对于所 ...