1
+ import xlsxwriter
2
+ from datetime import datetime
3
+ def simple_use ():
4
+ import xlsxwriter
5
+
6
+ workbook = xlsxwriter .Workbook ('demo.xlsx' ) # 建立文件
7
+
8
+ worksheet = workbook .add_worksheet () # 建立sheet, 可以使用work.add_worksheet('employee')来指定sheet名,如果命名中文名会报UnicodeDecodeErro的错误
9
+
10
+ worksheet .write ('A1' , 'Hello world' ) # 向A1写入文字
11
+
12
+ workbook .close ()
13
+
14
+ def simple_example ():
15
+
16
+ # 创建一个新的Excel文件并添加一个工作表
17
+ workbook = xlsxwriter .Workbook ('example_demo.xlsx' )
18
+ worksheet = workbook .add_worksheet ()
19
+
20
+ # 确定第一栏,使文字更清楚
21
+ worksheet .set_column ('A:A' , 20 )
22
+
23
+ # 添加粗体格式以突出显示单元格
24
+ bold = workbook .add_format ({'bold' : True })
25
+
26
+ # 简单的写一些文字
27
+ worksheet .write ('A1' , 'Hello' )
28
+
29
+ # 另起一行写入文字并加粗
30
+ worksheet .write ('A2' , 'Python 技术' , bold )
31
+
32
+ # 用行/列表示法写一些数字
33
+ worksheet .write (2 , 0 , 123 )
34
+ worksheet .write (3 , 0 , 13.432 )
35
+
36
+ # 插入一张图片.
37
+ worksheet .insert_image ('B5' , 'logo.jpeg' )
38
+
39
+ workbook .close ()
40
+
41
+ def sum_data ():
42
+ workbook = xlsxwriter .Workbook ('demo.xlsx' ) # 建立文件
43
+ worksheet = workbook .add_worksheet ()
44
+ add_data = (
45
+ ['A1' , 1087 ],
46
+ ['A2' , 1056 ],
47
+ ['A3' , 300 ],
48
+ ['A4' , 590 ],
49
+ )
50
+ # 按标号写入是从0开始的,按绝对位置'A1'写入是从1开始的
51
+ row = 0
52
+ col = 0
53
+
54
+ # 遍历数据并逐行写出它
55
+ for item , cost in (add_data ):
56
+ worksheet .write (row , col , item )
57
+ worksheet .write (row , col + 1 , cost )
58
+ row += 1
59
+
60
+ # 用公式写出总数
61
+ worksheet .write (row , 0 , 'Total' )
62
+ worksheet .write (row , 1 , '=SUM(B1:B4)' ) # 调用excel的公式表达式
63
+
64
+ workbook .close ()
65
+
66
+ def self_define_format ():
67
+ # 建文件及sheet.
68
+ workbook = xlsxwriter .Workbook ('demo2.xlsx' )
69
+ worksheet = workbook .add_worksheet ()
70
+
71
+ # Add a bold format to use to highlight cells. 设置粗体,默认是False
72
+ bold = workbook .add_format ({'bold' : True })
73
+
74
+ # 定义数字格式
75
+ money = workbook .add_format ({'num_format' : '$#,##0' })
76
+
77
+ # Write some data headers. 带自定义粗体blod格式写表头
78
+ worksheet .write ('A1' , 'Item' , bold )
79
+ worksheet .write ('B1' , 'Cost' , bold )
80
+
81
+ # Some data we want to write to the worksheet.
82
+ add_data = (
83
+ ['A1' , 1087 ],
84
+ ['A2' , 1056 ],
85
+ ['A3' , 300 ],
86
+ ['A4' , 590 ],
87
+ )
88
+
89
+ # Start from the first cell below the headers.
90
+ row = 1
91
+ col = 0
92
+
93
+ # Iterate over the data and write it out row by row.
94
+ for item , cost in (add_data ):
95
+ worksheet .write (row , col , item ) # 带默认格式写入
96
+ worksheet .write (row , col + 1 , cost , money ) # 带自定义money格式写入
97
+ row += 1
98
+
99
+ # Write a total using a formula.
100
+ worksheet .write (row , 0 , 'Total' , bold )
101
+ worksheet .write (row , 1 , '=SUM(B2:B5)' , money )
102
+
103
+ workbook .close ()
104
+
105
+ def write_date ():
106
+
107
+ from datetime import datetime
108
+ workbook = xlsxwriter .Workbook ('demo3.xlsx' )
109
+ worksheet = workbook .add_worksheet ()
110
+
111
+ # 添加粗体格式以突出显示单元格.
112
+ bold = workbook .add_format ({'bold' : 1 })
113
+
114
+ # 为带钱的单元格添加数字格式.
115
+ money_format = workbook .add_format ({'num_format' : '$#,##0' })
116
+
117
+ # 添加Excel日期格式.
118
+ date_format = workbook .add_format ({'num_format' : 'mmmm d yyyy' })
119
+
120
+ # 调整列的宽度
121
+ worksheet .set_column (1 , 1 , 15 )
122
+
123
+ # 写入数据表头
124
+ worksheet .write ('A1' , 'Item' , bold )
125
+ worksheet .write ('B1' , 'Date' , bold )
126
+ worksheet .write ('C1' , 'Cost' , bold )
127
+
128
+ # 将数据写入工作表
129
+ add_data = (
130
+ ['A1' , '2021-01-13' , 1875 ],
131
+ ['A2' , '2021-07-14' , 345 ],
132
+ ['A3' , '2022-01-01' , 564 ],
133
+ ['A4' , '2021-01-26' , 10987 ],
134
+ )
135
+
136
+ # 从标题下面的第一个单元格开始.
137
+ row = 1
138
+ col = 0
139
+
140
+ for item , date_str , cost in (add_data ):
141
+ # 将日期字符串转换为datetime对象
142
+ date = datetime .strptime (date_str , "%Y-%m-%d" )
143
+
144
+ worksheet .write_string (row , col , item )
145
+ worksheet .write_datetime (row , col + 1 , date , date_format )
146
+ worksheet .write_number (row , col + 2 , cost , money_format )
147
+ row += 1
148
+
149
+ # 用公式写出总数
150
+ worksheet .write (row , 0 , 'Total' , bold )
151
+ worksheet .write (row , 2 , '=SUM(C2:C5)' , money_format )
152
+
153
+ workbook .close ()
154
+
155
+ if __name__ == '__main__' :
156
+ # simple_example()
157
+ #simple_use()
158
+ #sum_data()
159
+ #self_define_format()
160
+ write_date ()
0 commit comments