久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

用 python 來操作 docx,, xlsx 格式文件(一)(使用 xlsxwriter 庫操作xlsx格式文件)

 bitzhang 2020-06-13

需要從數(shù)據(jù)庫讀取日志生成相應(yīng)的 docx,,xlsx 文件做相應(yīng)的記錄

所以自然要用到docx,, xlsxwriter 庫

但是這些庫的應(yīng)用場景非常廣泛,任何需要對 word,,excel 文件執(zhí)行重復(fù)性操作的工作,,都可以使用 python 來幫我們完成

 

xlsxwriter 庫

文章結(jié)構(gòu)

  一、xlsxwriter 基本用法,,創(chuàng)建 xlsx 文件并添加數(shù)據(jù)

  二,、xlsxwriter 格式處理,將待添加數(shù)據(jù)轉(zhuǎn)換成相應(yīng)的格式,,添加到 xlsx 文件中

  三,、xlsxwriter 添加表格,,在 xlsx 文件中添加表格

  四、深入理解格式(Format Class),,并運(yùn)用

 

一,、xlsxwriter 基本用法,創(chuàng)建 xlsx 文件并添加數(shù)據(jù)

   官方文檔:http://xlsxwriter./  

  xlsxwriter 可以操作 xls 格式文件

  注意:xlsxwriter 只能創(chuàng)建新文件,,不可以修改原有文件,。如果創(chuàng)建新文件時(shí)與原有文件同名,則會(huì)覆蓋原有文件

  Linux 下安裝: sudo pip install XlsxWriter

  Windows 下安裝: pip install XlsxWriter

  基本用法:

復(fù)制代碼
 1 #!/usr/bin/python
 2 #coding: utf-8
 3 
 4 import xlsxwriter
 5 
 6 #創(chuàng)建一個(gè)新的xlsx文件(如果原有同名文件會(huì)被覆蓋)
 7 workbook = xlsxwriter.Workbook("Expenses01.xlsx")
 8 
 9 #創(chuàng)建一個(gè)新的表單,,默認(rèn)名稱為 “sheet1”,輸入字符參數(shù)可指定名稱
10 worksheet = workbook.add_worksheet()
11 
12 expenses = (
13     ['Rent', 1000],
14     ['Gas' ,  100],
15     ['Food',  300],
16     ['Gym' ,   50],
17 )
18 
19 #worksheet 默認(rèn)是從0行,、0列開始計(jì)數(shù)
20 row = 0
21 col = 0
22 
23 #worksheet.write 方法將數(shù)據(jù)寫入 xlsx 表格中
24 #參數(shù)依次為:行號,、列號、數(shù)據(jù),、[格式]
25 for item, cost in (expenses):
26     worksheet.write(row, col ,    item)
27     worksheet.write(row, col + 1, cost)
28     row += 1
29 
30 #顯式關(guān)閉workbook,,若不顯式指定,則作用域結(jié)束后自動(dòng)關(guān)閉
31 workbook.close()
復(fù)制代碼

   效果展示:

二,、xlsxwriter 格式處理,,將待添加數(shù)據(jù)轉(zhuǎn)換成相應(yīng)的格式,添加到 xlsx 文件中

  先設(shè)置格式,,使用方法:workbook.add_format

  再指定格式寫入,,使用方法:worksheet.write_string

復(fù)制代碼
 1 #!/usr/bin/python
 2 #coding: utf-8
 3 
 4 from datetime import datetime
 5 import xlsxwriter
 6 
 7 workbook = xlsxwriter.Workbook('Expenses02.xlsx')
 8 worksheet = workbook.add_worksheet()
 9 
10 #設(shè)定格式,等號左邊格式名稱自定義,,字典中格式為指定選項(xiàng)
11 #bold:加粗,,num_format:數(shù)字格式
12 bold_format = workbook.add_format({'bold':True})
13 money_format = workbook.add_format({'num_format':'$#,##0'})
14 date_format =workbook.add_format({'num_format':'mmmm d yyyy'})
15 
16 #將二行二列設(shè)置寬度為15(從0開始)
17 worksheet.set_column(1, 1, 15)
18 
19 #用符號標(biāo)記位置,例如:A列1行
20 worksheet.write('A1', 'Item', bold_format)
21 worksheet.write('B1', 'Cost', bold_format)
22 worksheet.write('C1', 'Cost', bold_format)
23 
24 expenses = (
25     ['Rent', '2016-03-11', 1000],
26     ['Gad',  '2016-03-12',  100],
27     ['Food', '2016-03-13', 400],
28     ['Gym',  '2016-03-14',  50],
29 )
30 
31 row = 1
32 col = 0
33 
34 for item, date_str, cost in (expenses):
35     #將數(shù)據(jù)格式轉(zhuǎn)化為Python datetime.datetime 格式
36     #之后用write_datetime方法錄入日期格式
37     date = datetime.strptime(date_str, "%Y-%m-%d")
38 
39     #使用write_string方法,,指定數(shù)據(jù)格式寫入數(shù)據(jù)
40     worksheet.write_string(row, col,     item)
41     worksheet.write_datetime(row, col + 1, date,  date_format)
42     worksheet.write_number(row, col + 2, cost, money_format)
43     row += 1
44 
45 worksheet.write(row, 0, 'Total',       bold_format)
46 worksheet.write(row, 1, '=SUM(B2:B5)', money_format)
47 
48 workbook.close()
復(fù)制代碼

  效果展示:

  

  寫入日期格式時(shí),,指定對象要是 Python 的 datetime.datetime 格式

  使用 workbook.add_format 綁定時(shí),可以指定如下格式

 

 

 三,、xlsxwriter 添加表格,,在 xlsx 文件中添加表格

復(fù)制代碼
 1 #!/usr/bin/python
 2 #coding: utf-8
 3 
 4 import xlsxwriter
 5 
 6 workbook = xlsxwriter.Workbook('chart.xlsx')
 7 worksheet = workbook.add_worksheet()
 8 
 9 #新建圖標(biāo)對象
10 chart = workbook.add_chart({'type': 'column'})
11 
12 #向 excel 中寫入數(shù)據(jù),建立圖標(biāo)時(shí)要用到
13 data = [
14     [1, 2, 3, 4, 5],
15     [2, 4, 6, 8, 10],
16     [3, 6, 9, 12, 15],
17 ]
18 
19 worksheet.write_column('A1', data[0])
20 worksheet.write_column('B1', data[1])
21 worksheet.write_column('C1', data[2])
22 
23 #向圖表中添加數(shù)據(jù),,例如第一行為:將A1~A5的數(shù)據(jù)轉(zhuǎn)化為圖表
24 chart.add_series({'values': '=Sheet1!$A$1:$A$5'})
25 chart.add_series({'values': '=Sheet1!$B$1:$B$5'})
26 chart.add_series({'values': '=Sheet1!$C$1:$C$5'})
27 
28 #將圖標(biāo)插入表單中
29 worksheet.insert_chart('A7', chart)
30 
31 workbook.close()
復(fù)制代碼

  效果展示:

 

四,、更多可用的單元格式對象(Format Class)

  ecxel 中每一個(gè)單元,都有如下屬性:字體(fonts),、顏色(colors),、模式(patterns)、邊界(borders),、alignment,、number formatting

  設(shè)置屬性:

復(fù)制代碼
format = workbook.add_format()

#用對象接口設(shè)置格式屬性
format.set_bold()
format.set_font_color('red')

#用字典設(shè)置格式屬性
property = {
    'bold': True,
    'font_color': 'red'
}
format = workbook.add_format(property)
復(fù)制代碼

  更多相關(guān)參見:http://xlsxwriter./format.html

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多