1. 程式人生 > >NPOI用WorkbookFactory讀寫 2007以上格式文件(xlsx)

NPOI用WorkbookFactory讀寫 2007以上格式文件(xlsx)

輸出 最新 壓縮工具 mode 新的 mod 發現 eno 讀寫

//我用的最新的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));

//對不起大家,我撒謊了,NPOI不支持XLSX文件輸出。

//不會有錯誤提示,但生成的文件打開會“發現不可讀取內容, xxxOOO..."

NPOI用WorkbookFactory讀寫 2007以上格式文件(xlsx)