码迷,mamicode.com
首页 > 编程语言 > 详细

【Python】Excel-3

时间:2018-04-21 22:54:12      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:series   art   group   指定   合并单元格   work   star   row   min   

  1 1、    导入Excel模块:from openpyxl import Workbook
  2 
  3 2、    创建Excel对象:wb=Workbook()
  4 
  5 3、    创建sheet:ws1=wb.create_sheet(“name”)
  6 
  7 4、    指定位置创建某个sheet:ws1=create_sheet(“name”,0)
  8 
  9 5、    修改sheet名字:ws1.title=”new name”;中文名字ws1.title=u”new name”
 10 
 11 6、    设定sheet背景属性ws1.sheet_properties_tabColor=”108888 12 
 13 7、    获取某个sheet对象:wb[“sheet name”]
 14 
 15 8、    获取全部sheet的名字:wb.sheetnames或wb.get_sheet_names() 返回的是一个list
 16 
 17 9、    复制一个sheet:wb.copy_worksheet(wb[“sheet name”])
 18 
 19 10、   给固定单元格赋值:
 20 
 21 (1) ws1[“A1”]=3.1415
 22 
 23 (2) ws1[“B2”]=”王某某”
 24 
 25 (3) ws1.cell(row=4,column=2,value=10)
 26 
 27 11、   获取某个单元格的值
 28 
 29 (1) ws1[“A1”].value
 30 
 31 (2) ws1.cell(row=4,column=2,value=10).value
 32 
 33 12、   获取某一列的值
 34 
 35 (1) ws1[“A”];ws1[“A:C”]为获取A到C列的值
 36 
 37 (2) for cell in ws1[“A”]:print cell.value
 38 
 39 13、   获取某几行的值
 40 
 41 (1) ws1[1:3]
 42 
 43 (2) for row in ws[1:3]:print row.value
 44 
 45 14、   获取某几行几列的值
 46 
 47 for row in ws1.iter_rows(min_row=1,min_col=1,max_col=3,max_row=3):
 48 
 49 for cell in row:
 50 
 51    print cell.value
 52 
 53 15、   获取所有行:ws1.rows
 54 
 55 16、   获取所有列ws1.columns
 56 
 57 17、   保存Excel:wb.save(“e:\\test4\\sample.xlsx”)
 58 
 59 18、   打开Excel文件:
 60 
 61 import xlrd
 62 
 63 data=xlrd.open_workbook(“e:\\test4\\sample.xlsx”)
 64 
 65 19、   写入excel文件内容如果是中文不需要加”u”,创建sheet名称时如果是中文需要加”u”
 66 
 67 #练习:创建一个excel,第一行是1,2,3,第二行是4,5,6,第三行是7,8,9,保存在磁盘上,然后并且把每一个值读出来,并输出
 68 
 69 from openpyxl import Workbook
 70 
 71 wb=Workbook()
 72 
 73 ws1=wb.create_sheet(u"某某")
 74 
 75 i=1
 76 
 77 for m in range(1,4):
 78 
 79     for n in range(1,4):
 80 
 81         ws1.cell(row=m,column=n,value=i)
 82 
 83         i+=1
 84 
 85 for m in range(1,4):
 86 
 87     for n in range(1,4):
 88 
 89         print ws1.cell(row=m,column=n).value
 90 
 91 
 92 
 93 for column in ws1["A:C"]:
 94 
 95     for cell in column:
 96 
 97         print cell.value
 98 
 99 wb.save("e:\\test4\\s2.xlsx")
100 
101 #练习:显示小数或百分数
102 
103 from openpyxl import Workbook
104 
105 from openpyxl import load_workbook
106 
107 wb = load_workbook(e:\\test4\\s2.xlsx)
108 
109 wb.guess_types = True
110 
111 #这个的意思是只获取第一个sheet
112 
113 ws=wb.active
114 
115 ws["D1"]="12%"
116 
117 print ws["D1"].value
118 
119 wb.save("e:\\test4\\s2.xlsx")
120 
121 #练习:
122 
123 from openpyxl import Workbook
124 
125 from openpyxl import load_workbook
126 
127 wb = load_workbook(e:\\test4\\s2.xlsx)
128 
129 ws=wb.active
130 
131 rows=[]
132 
133 for row in ws.iter_rows():
134 
135     rows.append(row)
136 
137 
138 
139 print rows                      #所有行,存的是每一行的对象
140 
141 print rows[0]                    #获取第一行
142 
143 print rows[0][0]                #获取第一行第一列的单元格对象
144 
145 print rows[0][0].value                #获取第一行第一列的单元格对象的值
146 
147 print rows[len(rows)-1]                #获取最后行
148 
149 print rows[len(rows)-1][len(rows[0])-1]        #获取第后一行和最后一列的单元格对象
150 
151 print rows[len(rows)-1][len(rows[0])-1].value    #获取第后一行和最后一列的单元格对象的值
152 
153 
154 
155 #练习:
156 
157 from openpyxl import Workbook
158 
159 from openpyxl import load_workbook
160 
161 wb = load_workbook(e:\\test4\\s2.xlsx)
162 
163 ws=wb.active
164 
165 cols=[]
166 
167 for col in ws.iter_cols():
168 
169     cols.append(col)
170 
171 
172 
173 print cols                      #所有列
174 
175 print cols[0]                      #获取第一列
176 
177 print cols[0][0]                  #获取第一列的第一行的单元格对象
178 
179 print cols[0][0].value              #获取第一列的第一行的值
180 
181 
182 
183 print "*"*30
184 
185 print cols[len(cols)-1]              #获取最后一列
186 
187 print cols[len(cols)-1][len(cols[0])-1]      #获取最后一列的最后一行的单元格对象
188 
189 print cols[len(cols)-1][len(cols[0])-1].value      #获取最后一列的最后一行的单元格对象的
190 
191 
192 
193 #练习:判断类型
194 
195 from openpyxl import Workbook
196 
197 from openpyxl import load_workbook
198 
199 import datetime
200 
201 wb = load_workbook(e:\\test4\\s2.xlsx)
202 
203 ws=wb.active
204 
205 wb.guess_types = True
206 
207 
208 
209 ws["A1"]=datetime.datetime(2010, 7, 21)
210 
211 print ws["A1"].number_format
212 
213 
214 
215 ws["A2"]="12%"
216 
217 print ws["A2"].number_format
218 
219 
220 
221 ws["A3"]= 1.1
222 
223 print ws["A4"].number_format
224 
225 
226 
227 ws["A4"]= "中国"
228 
229 print ws["A5"].number_format
230 
231 # Save the file
232 
233 wb.save(e:\\test4\\s2.xlsx)
234 
235 
236 
237 
238 
239 #练习:Excel中用公式
240 
241 from openpyxl import Workbook
242 
243 from openpyxl import load_workbook
244 
245 wb = load_workbook(e:\\test4\\s2.xlsx)
246 
247 ws1=wb.active
248 
249 ws1["A1"]=1
250 
251 ws1["A2"]=2
252 
253 ws1["A3"]=3
254 
255 
256 
257 ws1["A4"] = "=SUM(1, 1)"
258 
259 ws1["A5"] = "=SUM(A1:A3)"  #这里打印的是Excel的公式,而不是公式计算后的结果
260 
261 
262 
263 print ws1["A4"].value  #打印的是公式内容,不是公式计算后的值,程序无法取到计算后的值
264 
265 print ws1["A5"].value  #打印的是公式内容,不是公式计算后的值,程序无法取到计算后的值
266 
267 # Save the file
268 
269 wb.save(e:\\test4\\s2.xlsx)
270 
271 
272 
273 #练习:合并单元格
274 
275 from openpyxl import Workbook
276 
277 from openpyxl import load_workbook
278 
279 
280 
281 wb = load_workbook(e:\\test4\\s2.xlsx)
282 
283 ws1=wb.active
284 
285 from openpyxl.workbook import Workbook
286 
287 wb = Workbook()
288 
289 ws = wb.active
290 
291 ws.merge_cells(A2:D2)  #合并单元格,值不保留
292 
293 #ws.unmerge_cells(‘A2:D2‘) #不合并单元格
294 
295 # or equivalently
296 
297 ws.merge_cells(start_row=2,start_column=1,end_row=2,end_column=4)
298 
299 #ws.unmerge_cells(start_row=2,start_column=1,end_row=2,end_column=4)
300 
301 # Save the file
302 
303 wb.save(e:\\test4\\s2.xlsx)
304 
305 
306 
307 #练习:隐藏列
308 
309 from openpyxl import load_workbook
310 
311 from openpyxl.drawing.image import Image
312 
313 
314 
315 wb = load_workbook(e:\\test4\\s2.xlsx)
316 
317 ws1=wb.active
318 
319 ws1.column_dimensions.group(A, D, hidden=True)   #隐藏a到d列范围内的列
320 
321 # Save the file
322 
323 wb.save(e:\\test4\\s2.xlsx)
324 
325 
326 
327 #练习:生成柱状图
328 
329 from openpyxl import load_workbook
330 
331 from openpyxl import Workbook
332 
333 from openpyxl.chart import BarChart, Reference, Series
334 
335 
336 
337 wb = load_workbook(e:\\test4\\s2.xlsx)
338 
339 ws1=wb.active
340 
341 wb = Workbook()
342 
343 ws = wb.active
344 
345 for i in range(10):
346 
347     ws.append([i])
348 
349 
350 
351 values = Reference(ws, min_col=1, min_row=1, max_col=1, max_row=10)
352 
353 chart = BarChart()
354 
355 chart.add_data(values)
356 
357 ws.add_chart(chart, "E15")
358 
359 # Save the file
360 
361 wb.save(e:\\test4\\s2.xlsx)

 

【Python】Excel-3

标签:series   art   group   指定   合并单元格   work   star   row   min   

原文地址:https://www.cnblogs.com/jingsheng99/p/8904089.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!