日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

NPOI

發布時間:2023/11/27 生活经验 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NPOI 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
NPOI是POI的.net版本, 是能夠幫助開發者在沒有安裝微軟office的情況下讀寫office文件,支持的文件包括excel,word,ppt等

?

NPOI.Util 基礎輔助庫 NPOI.POIFS OLE2格式讀寫庫 NPOI.DDF Micosoft Drawing格式讀寫庫 NPOI.SS Excel公式計算庫 NPOI.HPSF?OLE2的Summary Information和Document Summary Information屬性讀寫庫 NPOI.HSSF?? Excel BIFF格式讀寫庫

NPOI.HSSF是專門負責Excel BIFF格式的命名空間,供開發者使用的對象主要位于NPOI.HSSF.UserModel和NPOI.HSSF.Util命名空間下,Workbook的創建用的是NPOI.HSSF.UserModel.HSSFWorkbook類,這個類負責創建Excel文檔

?

創建一個Excel文檔的步驟

HSSFWorkbook wk = new HSSFWorkbook();//初始化一個實例
//這個實例就相當于一個Excel文檔,但是只是這樣創建出的文檔會報錯,因為一個Excel文檔中至少要有一個sheet(頁)
wk.CreateSheet("頁名");//為文檔添加一頁
FileStream file = new FileStream("路徑和文件名",創建方式);//創建一個文件流
wk.Write(file);//把實例傳給文件流,創建出文件
file.Close();//關閉文件流

?

?從excel讀取數據,寫入txt和從txt讀取數據,寫入excel的實例

using System.Text;
using System.Threading.Tasks;
using NPOI.HSSF.UserModel;
using NPOI.HSSF.Util;
using System.IO;
using NPOI.SS.UserModel;
namespace NPOI_and_TXT
{public class NPOItoTXT{public void toTXT() {FileStream fs = new FileStream(@"D:\學習\題\npoi\NPOI\NPOI\bin\Debug\test.xls",FileMode.Open,FileAccess.Read);FileStream fsn = new FileStream(@"D:\學習\題\npoi\NPOI\NPOI\bin\Debug\i.txt", FileMode.Create,FileAccess.Write);StreamWriter sw = new StreamWriter(fsn,Encoding.Default);HSSFWorkbook wk = new HSSFWorkbook(fs);ISheet hs =wk.GetSheet("sheet1");for (int i = 0; i < hs.LastRowNum+1; i++){IRow ir = hs.GetRow(i);for (int j = 0; j < ir.LastCellNum; j++){sw.Write(ir.GetCell(j)+" ");}sw.WriteLine();}Console.WriteLine("更改txt成功");sw.Close();}}
}

?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NPOI.HSSF.UserModel;
using NPOI.HSSF.Util;
using System.IO;
using NPOI.SS.UserModel;
namespace NPOI_and_TXT
{public class TXTtoNPOI{public void toNPOI() {FileStream fs = new FileStream(@"D:\學習\題\npoi\NPOI\NPOI\bin\Debug\i.txt",FileMode.Open,FileAccess.Read);StreamReader sr = new StreamReader(fs,Encoding.Default);HSSFWorkbook hwb = new HSSFWorkbook();ISheet hs =  hwb.CreateSheet("sheet1");List<string[]> list = new List<string[]>();string line = sr.ReadLine();int w = 0;while (line!=null){HSSFRow row = (HSSFRow)hs.CreateRow(w);string[] s = line.Split(' ');list.Add(s);for (int i = 0; i < s.Length; i++){row.CreateCell(i).SetCellValue(list[w][i]);}line = sr.ReadLine();w++;}Console.WriteLine("更改excel成功");FileStream file = new FileStream(@"D:\學習\題\npoi\NPOI\NPOI\bin\Debug\test.xls", FileMode.Create);hwb.Write(file);file.Close();fs.Close();}}
}

?

NPOI 高級功能

?

調整頁面縮放比例

sheet.SetZoom(分子,分母) 
鎖定列 被鎖定的列無法修改,輸入密碼才可以解除鎖定
ICellStyle Islock = hsk.CreateCellStyle();//創建一個列樣式對象
Islock.IsLocked = true; //設置樣式對象為鎖定(false為不鎖定)

ICell cel = sheet.GetRow(1).GetCell(1);//獲取一個列
cel.CellStyle = Islock;//將樣式對象賦給這個列

sheet.ProtectSheet("密碼");//設置解鎖密碼
凍結行,列 被凍結的行,列會固定位置,鼠標下滾依然會顯示在原位置 第一個參數表示要凍結的列數 第二個參數表示要凍結的行數 第三個參數表示右邊區域默認的首例序號 第四個參數表示下邊區域默認的首例序號
sheet.CreateFreezePane(3,1,10,10); //凍結第一行的前三列,右邊和下面區域從第10格開始顯示
默認選中 設為默認的列會在文檔打開時自動選中
cell.SetAsActiveCell();

?

默認選中區域 第一個參數表示從哪行開始 第二個參數表示從哪行結束 第三個參數表示從哪列開始 第四個參數表示從哪列結束
sheet.SetActiveCellRange(2,5,1,5); //第3行開始 第6行結束 第2列開始 第6列結束

?

默認選中多個區域

List<CellRangeAddress8Bit> cellranges = new List<CellRangeAddress8Bit>(){new CellRangeAddress8Bit(1,3,2,5),  new CellRangeAddress8Bit(6,7,8,9)  
};//創建一個用來存儲位置對象的list集合,并初始化兩個位置
sheet.SetActiveCellRange(cellranges,10,5,8);//把集合給頁

?

可視范圍

sheet.TopRow = 10;
sheet.LeftCol = 10;
//從頂部向下,左邊向右10格后的范圍才能看到

?

默認頁 文檔打開時會自動切換到默認頁
workbook.SetActiveSheet(1);//默認第二頁 從0開始
數據有效性 檢查輸入的值是否符合條件,如果不對則會有提示
CellRangeAddressList cr = new CellRangeAddressList(1,10,0,0);//創建一個位置對象,用來表示檢查的區域
DVConstraint constrain1 = DVConstraint.CreateDateConstraint(條件,"最小時間","最大時間","時間格式");//這是檢查時間的方法,還有其他的檢查方法
HSSFDataValidation dataValidate1 = new HSSFDataValidation(檢查區域,檢查條件);
dataValidate1.CreateErrorBox("標題","內容");//設置報錯彈框
sheet.AddValidationData(dataValidate1);

?

組合數據 組合后數據類似于可以收縮和展開,方便查看
sheet.GroupRow(1,5);//組合第二行到第六行
sheet.GroupColumn(1,3);//組合第二列到第四列

?

隱藏網格 設置文檔的是否顯示網格
sheet.DisplayGridlines = false;//true 顯示 false 不顯示

?

?

轉載于:https://www.cnblogs.com/nicopoiduang/p/8886213.html

總結

以上是生活随笔為你收集整理的NPOI的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。