Npoi打印設置

打印設置主要包括方向設置、縮放、紙張設置、頁邊距等。NPOI 1.2支持大部分打印屬性,可以讓你輕鬆知足客戶的打印須要。html

1、方向設置spa

Excel支持兩種頁面方向,即縱向和橫向。code

image

在NPOI中如何設置呢?你能夠經過HSSFSheet.PrintSetup.Landscape來設置,Landscape是布爾類型的,在英語中是橫向的意思。若是Landscape等於true,則表示頁面方向爲橫向;不然爲縱向。orm

2、縮放和頁面寬高htm

image

這裏的縮放比例對應於HSSFSheet.PrintSetup.Scale屬性,而頁寬和頁高分別對應於HSSFSheet.PrintSetup.FitWidth和HSSFSheet.PrintSetup.FitHeight。要注意的是,這裏的PrintSetup.Scale應該被設置爲0-100之間的值,而不是小數。blog

image

3、紙張設置ci

由HSSFSheet.PrintSetup.PaperSize屬性來設置,但這裏的PaperSize並非隨便設置的,而是由一些固定的值決定的,具體的值與對應的紙張以下表所示:get

紙張
1 US Letter 8 1/2 x 11 in
2 US Letter Small 8 1/2 x 11 in
3 US Tabloid 11 x 17 in
4 US Ledger 17 x 11 in
5 US Legal 8 1/2 x 14 in
6 US Statement 5 1/2 x 8 1/2 in
7 US Executive 7 1/4 x 10 1/2 in
8 A3 297 x 420 mm
9 A4 210 x 297 mm
10 A4 Small 210 x 297 mm
11 A5 148 x 210 mm
12 B4 (JIS) 250 x 354
13 B5 (JIS) 182 x 257 mm
14 Folio 8 1/2 x 13 in
15 Quarto 215 x 275 mm
16 10 x 14 in
17 11 x 17 in
18 US Note 8 1/2 x 11 in
19 US Envelope #9 3 7/8 x 8 7/8
20 US Envelope #10 4 1/8 x 9 1/2
21 US Envelope #11 4 1/2 x 10 3/8
22 US Envelope #12 4 \276 x 11
23 US Envelope #14 5 x 11 1/2
24 C size sheet
25 D size sheet
26 E size sheet
27 Envelope DL 110 x 220mm
28 Envelope C5 162 x 229 mm
29 Envelope C3 324 x 458 mm
30 Envelope C4 229 x 324 mm
31 Envelope C6 114 x 162 mm
32 Envelope C65 114 x 229 mm
33 Envelope B4 250 x 353 mm
34 Envelope B5 176 x 250 mm
35 Envelope B6 176 x 125 mm
36 Envelope 110 x 230 mm
37 US Envelope Monarch 3.875 x 7.5 in
38 6 3/4 US Envelope 3 5/8 x 6 1/2 in
39 US Std Fanfold 14 7/8 x 11 in
40 German Std Fanfold 8 1/2 x 12 in
41 German Legal Fanfold 8 1/2 x 13 in
42 B4 (ISO) 250 x 353 mm
43 Japanese Postcard 100 x 148 mm
44 9 x 11 in
45 10 x 11 in
46 15 x 11 in
47 Envelope Invite 220 x 220 mm
48 RESERVED–DO NOT USE
49 RESERVED–DO NOT USE
50 US Letter Extra 9 \275 x 12 in
51 US Legal Extra 9 \275 x 15 in
52 US Tabloid Extra 11.69 x 18 in
53 A4 Extra 9.27 x 12.69 in
54 Letter Transverse 8 \275 x 11 in
55 A4 Transverse 210 x 297 mm
56 Letter Extra Transverse 9\275 x 12 in
57 SuperA/SuperA/A4 227 x 356 mm
58 SuperB/SuperB/A3 305 x 487 mm
59 US Letter Plus 8.5 x 12.69 in
60 A4 Plus 210 x 330 mm
61 A5 Transverse 148 x 210 mm
62 B5 (JIS) Transverse 182 x 257 mm
63 A3 Extra 322 x 445 mm
64 A5 Extra 174 x 235 mm
65 B5 (ISO) Extra 201 x 276 mm
66 A2 420 x 594 mm
67 A3 Transverse 297 x 420 mm
68 A3 Extra Transverse 322 x 445 mm
69 Japanese Double Postcard 200 x 148 mm
70 A6 105 x 148 mm
71 Japanese Envelope Kaku #2
72 Japanese Envelope Kaku #3
73 Japanese Envelope Chou #3
74 Japanese Envelope Chou #4
75 Letter Rotated 11 x 8 1/2 11 in
76 A3 Rotated 420 x 297 mm
77 A4 Rotated 297 x 210 mm
78 A5 Rotated 210 x 148 mm
79 B4 (JIS) Rotated 364 x 257 mm
80 B5 (JIS) Rotated 257 x 182 mm
81 Japanese Postcard Rotated 148 x 100 mm
82 Double Japanese Postcard Rotated 148 x 200 mm
83 A6 Rotated 148 x 105 mm
84 Japanese Envelope Kaku #2 Rotated
85 Japanese Envelope Kaku #3 Rotated
86 Japanese Envelope Chou #3 Rotated
87 Japanese Envelope Chou #4 Rotated
88 B6 (JIS) 128 x 182 mm
89 B6 (JIS) Rotated 182 x 128 mm
90 12 x 11 in
91 Japanese Envelope You #4
92 Japanese Envelope You #4 Rotated
93 PRC 16K 146 x 215 mm
94 PRC 32K 97 x 151 mm
95 PRC 32K(Big) 97 x 151 mm
96 PRC Envelope #1 102 x 165 mm
97 PRC Envelope #2 102 x 176 mm
98 PRC Envelope #3 125 x 176 mm
99 PRC Envelope #4 110 x 208 mm
100 PRC Envelope #5 110 x 220 mm
101 PRC Envelope #6 120 x 230 mm
102 PRC Envelope #7 160 x 230 mm
103 PRC Envelope #8 120 x 309 mm
104 PRC Envelope #9 229 x 324 mm
105 PRC Envelope #10 324 x 458 mm
106 PRC 16K Rotated
107 PRC 32K Rotated
108 PRC 32K(Big) Rotated
109 PRC Envelope #1 Rotated 165 x 102 mm
110 PRC Envelope #2 Rotated 176 x 102 mm
111 PRC Envelope #3 Rotated 176 x 125 mm
112 PRC Envelope #4 Rotated 208 x 110 mm
113 PRC Envelope #5 Rotated 220 x 110 mm
114 PRC Envelope #6 Rotated 230 x 120 mm
115 PRC Envelope #7 Rotated 230 x 160 mm
116 PRC Envelope #8 Rotated 309 x 120 mm
117 PRC Envelope #9 Rotated 324 x 229 mm
118 PRC Envelope #10 Rotated 458 x 324 mm

(此表摘自《Excel Binary File Format (.xls) Structure Specification.pdf》)it

NPOI 1.2.4中的紙張常量由PaperSize表示,如PaperSize.A4, 但都是很是經常使用的紙張大小,若是知足不了你的須要,能夠根據上表本身給PaperSize屬性賦值。因此,若是你要設置紙張大小能夠用這樣的代碼:io

HSSFSheet.PrintSetup.PaperSize=(short)PaperSize.A5;

HSSFSheet.PrintSetup.PaperSize=9; (A4 210*297mm)

 

4、打印起始頁碼

image

它對應於HSSFSheet.PrintSetup.PageStart和HSSFSheet.PrintSetup.UsePage,若是UsePage=false,那麼就至關於「自動」,這時PageStart不起做用;若是UsePage=true,PageStart纔會起做用。因此在設置PageStart以前,必須先把UsePage設置爲true。

image

5、網格線

由HSSFSheet.IsPrintGridlines設置。但要注意,這裏不是HSSFSheet.PrintSetup下面,因此別搞混了。這裏之因此不隸屬於PrintSetup是由底層存儲該信息的record決定的,底層是把IsGridsPrinted放在GridsetRecord裏面的,而不是PrintSetupRecord裏面的,儘管界面上是放在一塊兒的。

6、單色打印

它對應於HSSFSheet.PrintSetup.NoColors屬性,布爾類型,值爲true時,表示單色打印。

7、草稿品質

它對應於HSSFSheet.PrintSetup.IsDraft屬性,布爾類型,值爲true時,表示用草稿品質打印。

8、打印順序

由HSSFSheet.PrintSetup.LeftToRight屬性控制,布爾類型,當爲true時,則表示「先行後列」;若是是false,則表示「先列後行」。

9、「錯誤單元格打印爲」設置

由HSSFSheet.PrintSetup.CellError屬性控制,DisplayCellErrorType枚舉類型,下面是的定義

1
2
3
4
5
6
7
public enum DisplayCellErrorType
{
     ErrorDisplayOnSheet, //dispayed
     ErrorAsBlank, //< blank >
     ErrorAsDashes, //--
     ErrorAsNA, //#N/A
}</ blank >

這裏的ErrorAsNA就是截圖中的#N/A的意思。

10、批註

由HSSFSheet.PrintSetup.Notes和HSSFSheet.PrintSetup.EndNote設置,HSSFSheet.PrintSetup.Notes是否設置需不須要打印批註,布爾類型;而HSSFSheet.PrintSetup.EndNote負責設置是否顯示在工做表末尾,不然就是「如同工做表中的顯示」。

 

至於一些Excel特殊字符,好比說頁碼能夠用&P,當前日期能夠用&D,其餘的東西你就本身研究吧。

本範例完整代碼請見NPOI.Examples中的CreateHeaderFooterInXls項目。

==========================1.2.5更新========================

1.2.5中新增了對Office自帶的標籤訂義,你能夠經過HSSFHeader或HSSFFooter訪問到它們,都是靜態屬性,列表以下

靜態屬性 對應標籤 含義
HSSFHeader.Tab &A 表名
HSSFHeader.File &F 文件名
HSSFHeader.StartBold &B 粗體開始
HSSFHeader.EndBold &B 粗體結束
HSSFHeader.StartUnderline &U 下劃線開始
HSSFHeader.EndUnderline &U 下劃線結束
HSSFHeader.StartDoubleUnderline &E 雙下劃線開始
HSSFHeader.EndDoubleUnderline &E 雙下劃線結束
HSSFHeader.Time &T 時間
HSSFHeader.Date &D 日期
HSSFHeader.NumPages &N 總頁面數
HSSFHeader.Page &P 當前頁號

 

區域打印:

WorkBook.SetPrintArea(sheet頁index, 開始列號, 結束列號, 開始行號, 結束行號)

WorkBook.SetPrintArea(sheet頁index, 區域("A5:H20"))

打印標題:

頂端標題行:Sheet.RepeatingRows = New CellRangeAddress(開始行號, 結束行號, 開始列號, 結束列號)

左端標題行:Sheet.RepeatingColumns = New CellRangeAddress(開始行號, 結束行號, 開始列號, 結束列號)

相關文章
相關標籤/搜索