创建样式

  1. func (f *File) NewStyle(style *Style) (int, error)

通过给定的样式格式结构体创建样式并返回样式索引,样式索引对于每个工作簿是唯一的,并且仅对当前工作簿有效,不可跨工作簿使用。此功能是并发安全的。请注意,Font.Color 需要使用 RRGGBB 格式的 RGB 十六进制色值代码。

边框

下面的表格是 Excelize 中 Border.Type 支持的边框类型:

类型说明类型说明
left左侧边框top顶部边框
right右侧边框bottom底部边框
diagonalDown对角线向下diagonalUp对角线向上

下面的表格是 Excelize 中 Border.Style 支持的边框线型索引与对应的线型名称、粗细及预览效果:

索引线型名称粗细预览效果
00
1连续线1"连续线"
2连续线2"连续线"
3短线1"短线"
4点线1"点线"
5连续线3"连续线"
6双线3"双线"
7连续线0"连续线"
8短线2"短线"
9短线与点间隔线1"短线与点间隔线"
10短线与点间隔线2"短线与点间隔线"
11短线与两个点一组重复线1"短线与两个点一组重复线"
12短线与两个点一组重复线2"短线与两个点一组重复线"
13斜线与点线2"斜线与点线"

Excelize 中的 Border.Style 边框线型索引与 Office Excel 应用程序“设置单元格格式” - “边框”对话框中的关系对照:

索引预览效果索引预览效果
012"边框 12"
7"边框 7"13"边框 13"
4"边框 4"10"边框 19"
11"边框 11"8"边框 8"
9"边框 9"2"边框 2"
3"边框 3"5"边框 5"
1"边框 1"6"边框 6"

颜色填充

下面的表格是 Excelize 中单元格颜色填充样式和索引 Fill.Shading 参数的关系对照:

索引样式索引样式
0横向3对角线向下
1纵向4从对角线向内
2对角线向上5从中心向外

图案填充

下面的表格是 Excelize 中单元格图案填充样式和索引 Fill.Pattern 参数的关系对照:

索引样式索引样式
010"图案填充 10"
1"图案填充 1"11"图案填充 11"
2"图案填充 2"12"图案填充 12"
3"图案填充 3"13"图案填充 13"
4"图案填充 4"14"图案填充 14"
5"图案填充 5"15"图案填充 15"
6"图案填充 6"16"图案填充 16"
7"图案填充 7"17"图案填充 17"
8"图案填充 8"18"图案填充 18"
9"图案填充 9

对齐方式

缩进

Indent 以整数表示文本缩进的空格数,每增加 1 缩进 3 个空格,即缩进的空格数计算如下:

缩进的空格数 = 缩进值 * 3

例如,当使用普通样式字体时,缩进值为 1 表示文本从单元格边缘开始保留 3 个空格宽度。注意:每个空格字符的宽度由字体定义,缩进设置仅在使用靠左、靠右或分散对齐时生效。

水平对齐方式

下面的表格是 Excelize 中单元格水平对齐方式 Alignment.Horizontal 参数与样式关系对照表:

参数样式
left向左(缩进)
center居中
right靠右(缩进)
fill填充
justify两端对齐
centerContinuous跨列居中
distributed分散对齐(缩进)

垂直对齐方式

下面的表格是 Excelize 中单元格垂直对齐方式 Alignment.Vertical 参数与样式关系对照表:

参数样式
top顶端对齐
center居中
justify两端对齐
distributed分散对齐

阅读顺序

ReadingOrder 是以 uint64 数据类型的值表示的单元格阅读顺序文字方向。下面是该字段的有效值与文字方向对照表:

描述
0根据内容,通过单元格文本中的第一个非空白字符来确定最终的阅读顺序文字方向:如果它是一个从右到左的强字符,则阅读顺序是从右到左;否则,阅读顺序为从左到右
1总是从左到右: 阅读顺序在单元格中是从左到右的,例如汉语、英语
2总是从右到左: 阅读顺序在单元格中是从右到左的,例如希伯来语

相对缩进

RelativeIndent 是一个整数值,用以表示为单元格中的文本调整的额外缩进空格数。

字体下划线

下面的表格是 Excelize 中单元格字体下划线 Font.Underline 参数与样式关系对照表:

参数样式
single单线
double双线

数字自定义格式

下面的表格是 Excelize 中支持的索引 Style.NumFmt 参数与数字自定义格式类型对照表:

索引类型
0General
10
20.00
3#,##0
4#,##0.00
5($#,##0);($#,##0)
6($#,##0);Red
7($#,##0.00);($#,##0.00)
8($#,##0.00);Red
90%
100.00%
110.00E+00
12# ?/?
13# ??/??
14m/d/yy
15d-mmm-yy
16d-mmm
17mmm-yy
18h:mm AM/PM
19h:mm:ss AM/PM
20h:mm
21h:mm:ss
22m/d/yy h:mm
37(#,##0);(#,##0)
38(#,##0);Red
39(#,##0.00);(#,##0.00)
40(#,##0.00);Red
41(* #,##0);(* (#,##0);( “-“);(@)
42($ #,##0);($ (#,##0);_($ “-“);(@)
43( #,##0.00);( (#,##0.00);(* “-“??);(@)
44($* #,##0.00);($* (#,##0.00);($* “-“??);(@_)
45mm:ss
46[h]:mm:ss
47mm:ss.0
48##0.0E+0
49@

繁体中文数字自定义格式

下面的表格是 Excelize 中支持的索引 Style.NumFmt 参数与繁体中文 zh-tw 版本数字自定义格式类型对照表:

索引类型
27[$-404]e/m/d
28[$-404]e”年”m”月”d”日”
29[$-404]e”年”m”月”d”日”
30m/d/yy
31yyyy”年”m”月”d”日”
32hh”時”mm”分”
33hh”時”mm”分”ss”秒”
34上午/下午 hh”時”mm”分”
35上午/下午 hh”時”mm”分”ss”秒”
36[$-404]e/m/d
50[$-404]e/m/d
51[$-404]e”年”m”月”d”日”
52上午/下午 hh”時”mm”分”
53上午/下午 hh”時”mm”分”ss”秒”
54[$-404]e”年”m”月”d”日”
55上午/下午 hh”時”mm”分”
56上午/下午 hh”時”mm”分”ss”秒”
57[$-404]e/m/d
58[$-404]e”年”m”月”d”日”

简体中文数字自定义格式

下面的表格是 Excelize 中支持的索引 Style.NumFmt 参数与简体中文 zh-cn 版本数字自定义格式类型对照表:

索引类型
27yyyy”年”m”月”
28m”月”d”日”
29m”月”d”日”
30m-d-yy
31yyyy”年”m”月”d”日”
32h”时”mm”分”
33h”时”mm”分”ss”秒”
34上午/下午 h”时”mm”分”
35上午/下午 h”时”mm”分”ss”秒
36yyyy”年”m”月
50yyyy”年”m”月
51m”月”d”日
52yyyy”年”m”月
53m”月”d”日
54m”月”d”日
55上午/下午 h”时”mm”分
56上午/下午 h”时”mm”分”ss”秒
57yyyy”年”m”月
58m”月”d”日”

日本语数字自定义格式

下面的表格是 Excelize 中支持的索引 Style.NumFmt 参数与日本语 ja-jp 版本数字自定义格式类型对照表:

索引类型
27[$-411]ge.m.d
28[$-411]ggge”年”m”月”d”日
29[$-411]ggge”年”m”月”d”日
30m/d/y
31yyyy”年”m”月”d”日
32h”時”mm”分
33h”時”mm”分”ss”秒
34yyyy”年”m”月
35m”月”d”日
36[$-411]ge.m.d
50[$-411]ge.m.d
51[$-411]ggge”年”m”月”d”日
52yyyy”年”m”月
53m”月”d”日
54[$-411]ggge”年”m”月”d”日
55yyyy”年”m”月
56m”月”d”日
57[$-411]ge.m.d
58[$-411]ggge”年”m”月”d”日”

韩语数字自定义格式

下面的表格是 Excelize 中支持的索引 Style.NumFmt 参数与韩语 ko-kr 版本数字自定义格式类型对照表:

索引类型
27yyyy”年” mm”月” dd”日
28mm-d
29mm-d
30mm-dd-y
31yyyy”년” mm”월” dd”일
32h”시” mm”분
33h”시” mm”분” ss”초
34yyyy-mm-d
35yyyy-mm-d
36yyyy”年” mm”月” dd”日
50yyyy”年” mm”月” dd”日
51mm-d
52yyyy-mm-d
53yyyy-mm-d
54mm-d
55yyyy-mm-d
56yyyy-mm-d
57yyyy”年” mm”月” dd”日
58mm-dd

泰国语数字自定义格式

下面的表格是 Excelize 中支持的索引 Style.NumFmt 参数与泰国语 th-th 版本数字自定义格式类型对照表:

索引类型
59t
60t0.0
61t#,##
62t#,##0.0
67t0
68t0.00
69t# ?/
70t# ??/?
71ว/ด/ปปป
72ว-ดดด-ป
73ว-ดด
74ดดด-ป
75ช:น
76ช:นน:ท
77ว/ด/ปปปป ช:น
78นน:ท
79[ช]:นน:ท
80นน:ทท.
81d/m/bb

货币格式

Excelize 目前支持的货币格式索引如下表所示,索引号仅用于标记,不在 Office Excel 文件中使用,目前无法通过函数 GetCellValue 获取格式化值后的值。

索引货币格式
164¥
165$ 英语(美国)
166$ 切罗基语(切罗基,美国)
167$ 中文(简体,新加坡)
168$ 中文(繁体,中国台湾)
169$ 英语(澳大利亚)
170$ 英语(伯利兹)
171$ 英语(加拿大)
172$ 英语(牙买加)
173$ 英语(新西兰)
174$ 英语(新加坡)
175$ 英语(特立尼达岛和多巴哥)
176$ 英语(加勒比海)
177$ 中文(新加坡)
178$ 法语(加拿大)
179$ 夏威夷语
180$ 马来语(文莱达鲁萨兰国)
181$ 克丘亚语(厄瓜多尔)
182$ 西班牙语(智利)
183$ 西班牙语(哥伦比亚)
184$ 西班牙语(厄瓜多尔)
185$ 西班牙语(萨尔瓦多)
186$ 西班牙语(墨西哥)
187$ 西班牙语(波多黎各)
188$ 西班牙语(美国)
189$ 西班牙语(乌拉圭)
190£ 英语(英国)
191£ 苏格兰盖尔语(英国)
192£ 威尔士语
193¥ 中文(简体,中国大陆)
194¥ 日语
195¥ 彝语(中国)
196¥ 藏语(中国)
197¥ 维吾尔语(中国)
198֏ 亚美尼亚语
199؋ 普什图语
200؋ 达里语
201৳ 孟加拉语(孟加拉)
202៛ 高棉语
203₡ 西班牙语(哥斯达黎加)
204₦ 豪撒语
205₦ 伊博语
206₩ 朝鲜语
207₪ 希伯来语
208₫ 越南语
209€ 巴斯克语
210€ 布列塔尼语
211€ 加泰罗尼亚语
212€ 科西嘉语
213€ 荷兰语(比利时)
214€ 荷兰语(荷兰)
215€ 英语(爱尔兰)
216€ 爱沙尼亚语
217€ 欧元(€123)
218€ 欧元(123€)
219€ 芬兰语
220€ 法语(比利时)
221€ 法语(法国)
222€ 法语(卢森堡)
223€ 法语(摩纳哥)
224€ 法语(留尼旺岛)
225€ 加利西亚语
226€ 德语(奥地利)
227€ 德语(德国)
228€ 德语(卢森堡)
229€ 希腊语
230€ 伊那里萨米语(芬兰)
231€ 爱尔兰语
232€ 意大利语(意大利)
233€ 英语(爱尔兰)
234€ 塞尔维亚语(拉丁语,黑山)
235€ 拉脱维亚语
236€ 立陶宛语
237€ 下索布语
238€ 卢森堡语
239€ 马耳他语
240€ 北萨米语(芬兰)
241€ 奥克西唐语
242€ 葡萄牙语(葡萄牙)
243€ 塞尔维亚语(西里尔文,黑山)
244€ 斯科特萨米语(芬兰)
245€ 斯洛伐克语
246€ 斯洛文尼亚语
247€ 西班牙语(西班牙)
248€ 瑞典语(芬兰)
249€ 阿尔萨斯语(法国)
250€ 上索布语
251€ 西弗里西亚语
252₭ 老挝语
253₮ 蒙古语(蒙古)
254₮ 蒙古语(蒙古)
255₱ 英语(菲律宾)
256₱ 菲律宾语
257₴ 乌克兰语
258₸ 哈萨克语
259₹ 克什米尔语(阿拉伯文)
260₹ 英语(印度)
261₹ 古吉拉特语
262₹ 印地语
263₹ 埃纳德语
264₹ 克什米尔语
265₹ 孔卡尼语
266₹ 曼尼普尔语
267₹ 马拉地语
268₹ 尼泊尔语(印度)
269₹ 奥里亚语
270₹ 旁遮普语(印度)
271₹ 梵语
272₹ 信德语(梵文)
273₹ 泰米尔语(印度)
274₹ 乌尔都语(印度)
275₺ 土耳其语(土耳其)
276₼ 阿塞拜疆语(拉丁语)
277₼ 阿塞拜疆语(西里尔文)
278₽ 俄语
279₽ 萨哈语
280₾ 格鲁吉亚语
281B/. 西班牙语(巴拿马)
282Br 奥罗莫语
283Br 白俄罗斯语
284Br 白俄罗斯语
285Bs 克丘亚语(玻利维亚)
286Bs 西班牙语(玻利维亚)
287BS. 克丘亚语(玻利维亚)
288BWP 茨瓦纳语(博茨瓦纳)
289C$ 西班牙语(尼加拉瓜)
290CA$ 因纽特语(拉丁语,加拿大)
291CA$ 莫霍克语(加拿大)
292CA$ 因纽特语(加拿大)
293CFA 法语(马里)
294CFA 法语(塞内加尔)
295CFA 富拉语(塞内加尔)
296CFA 沃洛夫语(塞内加尔)
297CHF 法语(瑞士)
298CHF 德语(列支敦士登)
299CHF 标准德语(瑞士)
300CHF 意大利语(瑞士)
301CHF 罗曼什语
302CLP 马普切语(智利)
303CN¥ 蒙古语(中国)
304DZD 中阿特斯柏柏尔语(拉丁文,阿尔及利亚)
305FCFA 法语(喀麦隆)
306Ft 匈牙利语
307G 法语(海地)
308Gs. 西班牙语(巴拉圭)
309GTQ 基切语
310HK$ 中文(繁体,香港特别行政区)
311HK$ 英语(香港特别行政区)
312HRK 克罗地亚语(克罗地亚)
313IDR 英语(印度尼西亚)
314IQD 阿拉伯语、中库尔德语(伊拉克)
315ISK 冰岛语
316K 缅甸语
317Kč 捷克语
318KM 波斯尼亚语(拉丁语)
319KM 克罗地亚语(波斯尼亚和黑塞哥维那)
320KM 塞尔维亚语(拉丁语,波斯尼亚和黑塞哥维那)
321Kr 法罗语
322Kr 北萨米语(挪威)
323kr 北萨米语(瑞典)
324Kr 挪威语(博克马尔语)
325Kr 挪威语(尼诺斯克语)
326kr瑞典语(瑞典)
327kr.丹麦语
328kr.格陵兰语
329Ksh 斯瓦希里语
330L 罗马尼亚语(摩尔多瓦)
331L 俄语(摩尔多瓦)
332L 西班牙语(洪都拉斯)
333Lekë 阿尔巴尼亚语
334MAD 中阿特拉斯柏柏尔语(提夫纳语,摩洛哥)
335MAD 法语(摩洛哥)
336MAD 中阿特拉斯柏柏尔语(提夫纳语,摩洛哥)
337MOP$ 中文(繁体,澳门特别行政区)
338MVR 迪维希语(马尔代夫)
339Nfk 提格里尼亚语(厄立特里亚省)
340NGN 克瓦语(埃多人说的克瓦语)
341NGN 富拉(尼日利亚)
342NGN 伊比比奥语(尼日利亚)
343NGN 卡努里语
344NOK 律勒欧萨米语(挪威)
345NOK 南萨米语(挪威)
346NZ$ 毛利语(新西兰)
347PKR 信德语(巴基斯坦)
348PYG 瓜拉尼语(巴拉圭)
349Q 西班牙语(危地马拉)
350R 南非荷兰语
351R 英语(南非)
352R 祖鲁语
353R$ 葡萄牙语(巴西)
354RD$ 西班牙语(多米尼加共和国)
355RF 卢旺达语
356RM 英语(马来西亚)
357RM 马来语(马来西亚)
358RON 罗马尼亚语
359Rp 印度尼西亚语
360Rs 乌尔都语(巴基斯坦)
361Rs. 泰米尔语(斯里兰卡)
362RSD 塞尔维亚语(拉丁语,塞尔维亚和黑山(前))
363RSD 塞尔维亚语(西里尔文,塞尔维亚和黑山(前))
364RUB 巴什基尔语(俄罗斯)
365RUB 鞑靼语(俄罗斯)
366S/. 盖丘亚语(秘鲁)
367S/. 西班牙语(秘鲁)
368SEK 律勒欧萨米语(瑞典)
369SEK 南萨米语(瑞典)
370soʻm 乌兹别克语(拉丁语)
371soʻm 乌兹别克语(拉丁语)
372SYP 叙利亚语(叙利亚)
373THB 泰语(泰国)
374TMT 土库曼语
375US$ 英语(津巴布韦)
376ZAR 北索托语(南非)
377ZAR 南索托语(南非)
378ZAR 特松加语(南非)
379ZAR 茨瓦纳语(南非)
380ZAR 文达语(南非)
381ZAR 科萨语(南非)
382zł 波兰语
383ден 马其顿语(马其顿)
384KM 波斯尼亚语(西里尔文)
385KM 塞尔维亚语(西里尔文、波斯尼亚和黑塞哥维那)
386лв. 保加利亚语
387p. 白俄罗斯语(白俄罗斯)
388сом 吉尔吉斯语
389сом 吉尔吉斯语
390ج.م. 阿拉伯语(埃及)
391د.أ. 阿拉伯语(约旦)
392د.أ. 阿拉伯语(阿拉伯联合酋长国)
393د.ب. 阿拉伯语(巴林)
394د.ت. 阿拉伯语(突尼斯)
395د.ج. 阿拉伯语(阿尔及利亚)
396د.ع. 阿拉伯语(伊拉克)
397د.ك. 阿拉伯语(科威特)
398د.ل. 阿拉伯语(利比亚)
399د.م. 阿拉伯语(摩洛哥)
400ر 旁遮普语(巴基斯坦)
401ر.س. 阿拉伯语(沙特阿拉伯)
402ر.ع. 阿拉伯语(阿曼)
403ر.ق. 阿拉伯语(卡塔尔)
404ر.ي. 阿拉伯语(也门)
405ریال 波斯语(伊朗)
406ل.س. 阿拉伯语(叙利亚)
407ل.ل. 阿拉伯语(黎巴嫩)
408ብር 阿姆哈拉语
409रू 尼泊尔语
410රු. 僧伽罗语
411ADP
412AED
413AFA
414AFN
415ALL
416AMD
417ANG
418AOA
419ARS
420ATS
421AUD
422AWG
423AZM
424AZN
425BAM
426BBD
427BDT
428BEF
429BGL
430BGN
431BHD
432BIF
433BMD
434BND
435BOB
436BOV
437BRL
438BSD
439BTN
440BWP
441BYR
442BZD
443CAD
444CDF
445CHE
446CHF
447CHW
448CLF
449CLP
450CNY
451COP
452COU
453CRC
454CSD
455CUC
456CVE
457CYP
458CZK
459DEM
460DJF
461DKK
462DOP
463DZD
464ECS
465ECV
466EEK
467EGP
468ERN
469ESP
470ETB
471EUR
472FIM
473FJD
474FKP
475FRF
476GBP
477GEL
478GHC
479GHS
480GIP
481GMD
482GNF
483GRD
484GTQ
485GYD
486HKD
487HNL
488HRK
489HTG
490HUF
491IDR
492IEP
493ILS
494INR
495IQD
496IRR
497ISK
498ITL
499JMD
500JOD
501JPY
502KAF
503KES
504KGS
505KHR
506KMF
507KPW
508KRW
509KWD
510KYD
511KZT
512LAK
513LBP
514LKR
515LRD
516LSL
517LTL
518LUF
519LVL
520LYD
521MAD
522MDL
523MGA
524MGF
525MKD
526MMK
527MNT
528MOP
529MRO
530MTL
531MUR
532MVR
533MWK
534MXN
535MXV
536MYR
537MZM
538MZN
539NAD
540NGN
541NIO
542NLG
543NOK
544NPR
545NTD
546NZD
547OMR
548PAB
549PEN
550PGK
551PHP
552PKR
553PLN
554PTE
555PYG
556QAR
557ROL
558RON
559RSD
560RUB
561RUR
562RWF
563SAR
564SBD
565SCR
566SDD
567SDG
568SDP
569SEK
570SGD
571SHP
572SIT
573SKK
574SLL
575SOS
576SPL
577SRD
578SRG
579STD
580SVC
581SYP
582SZL
583THB
584TJR
585TJS
586TMM
587TMT
588TND
589TOP
590TRL
591TRY
592TTD
593TWD
594TZS
595UAH
596UGX
597USD
598USN
599USS
600UYI
601UYU
602UZS
603VEB
604VEF
605VND
606VUV
607WST
608XAF
609XAG
610XAU
611XB5
612XBA
613XBB
614XBC
615XBD
616XCD
617XDR
618XFO
619XFU
620XOF
621XPD
622XPF
623XPT
624XTS
625XXX
626YER
627YUM
628ZAR
629ZMK
630ZMW
631ZWD
632ZWL
633ZWN
634ZWR

Excelize 支持为单元格设置自定义数字格式。例如,将 Sheet1 工作表的 A6 单元格 设置为乌拉圭(西班牙)格式的日期类型:

设置自定义数字格式

  1. f := excelize.NewFile()
  2. defer func() {
  3. if err := f.Close(); err != nil {
  4. fmt.Println(err)
  5. }
  6. }()
  7. if err := f.SetCellValue("Sheet1", "A6", 42920.5); err != nil {
  8. fmt.Println(err)
  9. return
  10. }
  11. exp := "[$-380A]dddd\\,\\ dd\" de \"mmmm\" de \"yyyy;@"
  12. style, err := f.NewStyle(&excelize.Style{CustomNumFmt: &exp})
  13. if err != nil {
  14. fmt.Println(err)
  15. return
  16. }
  17. err = f.SetCellStyle("Sheet1", "A6", "A6", style)

单元格 Sheet1!A6 在 Office Excel 应用程序中将会被格式化为:martes, 04 de Julio de 2017