亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

使用python來實現報表自動化

2024-06-28 16:02:37
字體:
來源:轉載
供稿:網友

本文轉載于http://blog.csdn.net/coraline_m?viewmode=contents

本篇文章將介紹:

xlwt 常用功能xlrd 常用功能xlutils 常用功能xlwt寫Excel時公式的應用xlwt寫入特定目錄(路徑設置)

xlwt Python語言中,寫入Excel文件的擴展工具??梢詫崿F指定表單、指定單元格的寫入。支持excel03版到excel2013版。使用時請確保已經安裝python環境。百度百科


xlrd Python語言中,讀取Excel的擴展工具。可以實現指定表單、指定單元格的讀取。使用時請確保已經安裝python環境。百度百科

NOTICE:

xlwt對Excel只能進行只寫操作xrrd對Excel只能進行只讀操作

此外,還有xlutils.copy可以實現Excel的復制再編輯。


1.python寫excel — xlwt常用功能

A.準備工作

安裝xlwt :在終端中輸入pip install xlwt或者easy_install xlwt引入xlwt包 :import xlwt # 寫11

B.基礎教程

新建工作簿&增加sheet: 新建一個工作簿,然后往里添加sheetf = xlwt.Workbook() # 創建工作簿sheet1 = f.add_sheet(u'sheet1', cell_overwrite_ok=True)#一個excel表格中可以添加多個sheet123123往sheet中寫入內容: sheet.write函數可以傳三個參數 第i(參數1)第j(參數2)列存入內容(參數3)sheet1.write(i, j, '第i行第j列存放此內容', style)# 這條語句實現的功能就是往第i行第j列存第三個參數的內容,第四個參數是樣式(如字體,背景),可以不傳第四個參數。1212合并單元格并寫入內容:sheet1.write_merge(x, x + m, y, y + n, '內容', style)# 這條y語句表示將[x:x+m]行[y:y+n]列的矩陣合并成一個單元格。存放第五個參數的內容,同理,style參數可以不傳參1212最后使用f.save(‘demo’) 就可以把f保存到excel了

C.實戰

我們可以先新建一個工作簿,然后往里添加兩個sheet,然后查看效果#coding=utf-8import xlwtf = xlwt.Workbook() # 創建工作簿sheet1 = f.add_sheet(u'葡小萄', cell_overwrite_ok=True)sheet2 = f.add_sheet(u'小葡萄', cell_overwrite_ok=True)f.save('xlwt_tutorial')1234567812345678效果如下,發現表格xlwt_tutorial中有兩個sheet。

這里寫圖片描述

我們開始往sheet中寫入內容,不傳入style參數 先只使用write函數#coding=utf-8import xlwtf = xlwt.Workbook() # 創建工作簿sheet1 = f.add_sheet(u'葡小萄', cell_overwrite_ok=True)sheet2 = f.add_sheet(u'小葡萄', cell_overwrite_ok=True)row = 0temp = [u'姓名',u'年齡',u'學校',u'專業']for pos,v in enumerate(temp): sheet1.write(row,pos,v)row += 1sheet1.write(row,0,u'葡萄')sheet1.write(row,1,18)sheet1.write(row,2,u'北京電影學院')row += 1sheet1.write(row,0,u'椰子')sheet1.write(row,1,20)sheet1.write(row,2,u'帝國國王科技大學')f.save('xlwt_tutorial')123456789101112131415161718192021123456789101112131415161718192021效果如下,我們建立了一個3行4列的表格。(write函數行和列值都是從0開始的)

這里寫圖片描述

下面我們使用write_merge函數來合并單元格并寫入 在f.save之前添加一行代碼sheet1.write_merge(1,2,3,3,u'漢語言文學')11效果如下,將第2-3行第4列合并 這里寫圖片描述

2.pythonxd讀excel —xlrd常用功能

A.準備工作

安裝xlrd :在終端中輸入pip install xlrd或者easy_install xlrd引入xlrd包 :import xlrd # 讀11

B.基礎教程&實戰

打開一個Excel,然后輸出所有sheet的名字#coding=utf-8import xlrdimport unioutf = xlrd.open_workbook(r'xlwt_tutorial')PRint f.sheet_names()12345671234567

輸出:[u’葡小萄’, u’小葡萄’]

得到表格里的所有的sheetfor i in range(len(f.sheet_names())): sheet1 = workbook.sheet_by_index(i)1212得到sheet中的內容f = xlrd.open_workbook(r'xlwt_tutorial')sheet1 = f.sheet_by_index(0) #打開第一個sheetsheet2 = f.sheet_by_name(u'小葡萄') #打開名字為小葡萄的sheet#輸出sheet的名稱,行數,列數print sheet1.name,sheet1.nrows,sheet1.ncolsprint sheet2.name,sheet2.nrows,sheet2.ncols12345671234567

輸出為: 葡小萄 3 4 小葡萄 0 0 .

print sheet1.row_values(1) #獲取第二行內容print sheet1.col_values(2) #獲取第三列內容1212

輸出為: [u’葡萄’, 18.0, u’北京電影學院’, u’漢語言文學’] [u’學校’, u’北京電影學院’, u’帝國國王科技大學’] .

# 獲取單元格內容print sheet1.cell(1,0).value# 獲取單元格內容的數據類型print sheet1.cell(1,1).ctype#ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error12345671234567

輸出為: 葡萄 2


3.xlutils 常用功能

A.準備工作

安裝xlutils :在終端中輸入pip install xlutils或者easy_install xlutils引入xlutils包 :import xlutils 11

B.xlutils中copy功能

我們可能會遇到一個問題,想對一個存儲好的Excel進行編輯。 但是xlrd是只讀模式,不能進行編寫。 而xlwt是只寫模式,不能讀入Excel文件進行編輯。 我們可以采用xlrd打開一個文檔,后采用xlutils中copy功能把文檔拷貝,然后進行編輯即可。

import xlrdfrom xlutils.copy import copyf = xlrd.open_workbook(r'xlwt_tutorial')wb = copy(f) # 將f拷貝到wbsheet1 = wb.get_sheet(0) # 打開sheetprint sheet1.namesheet1.write(3,0,'change')wb.save('xlwt_tutorial')12345678910111234567891011

輸出為: 葡小萄 輸出的表格已經改變。 這里寫圖片描述PS: 可以看到第二行第四列和第三行第四列合并格已經在COPY的時候被毀掉了。


4.xlwt寫Excel時公式的應用

我們寫用xlwt寫一個表格

#coding=utf-8import xlwtf = xlwt.Workbook() # 創建工作簿sheet1 = f.add_sheet(u'得分統計', cell_overwrite_ok=True)mdict = {"monkey":{"writing":80,"reading":60,"speaking":70,"listening":60},"grape":{"writing":100,"reading":80,"speaking":70,"listening":60}}sheet1.write(0,0,u'得分統計')sheet1.write(1,0,u'書法得分')sheet1.write(2,0,u'閱讀得分')sheet1.write(3,0,u'演講得分')sheet1.write(4,0,u'聽力得分')temp = ['writing','reading','speaking','listening']for pos,name in enumerate(mdict): sheet1.write(0,pos+1,name) for p,v in enumerate(temp): sheet1.write(p+1,pos+1,mdict[name][v])f.save('得分統計')1234567891011121314151617181920212212345678910111213141516171819202122

打開表格為: 這里寫圖片描述

我們現在想做的是統計grape的總分和monkey的總分: 在f.save之前加入代碼:

sheet1.write(5,0,u'總分統計')for i in range(len(mdict)): forstr = chr(65+i+1)+'2+'+chr(65+i+1)+'3+'+chr(65+i+1)+'4+'+chr(65+i+1)+'5' print forstr sheet1.write(5,i+1,xlwt.Formula(forstr))1234512345

輸出為: B2+B3+B4+B5 C2+C3+C4+C5 打開表格為: 這里寫圖片描述


5.xlwt寫入特定目錄(路徑設置)

由于代碼分層的緣故,使代碼整體框架優美。 我們需要把文件寫入到特定目錄下。 但是由于xlwt中沒有直接寫入到特定目錄的函數。 因此使用shutil.move函數來把文件MOV到特定目錄下:

#coding=utf-8import xlwtimport osimport shutilpath = '../sheet/'isExists = os.path.exists(path) # 判斷目錄是否存在if not isExists: # 如果目錄不存在,新建目錄 os.makedirs(path)f = xlwt.Workbook() # 創建工作簿sheet1 = f.add_sheet(u'得分統計', cell_overwrite_ok=True)mdict = {"monkey":{"writing":80,"reading":60,"speaking":70,"listening":60},"grape":{"writing":100,"reading":80,"speaking":70,"listening":60}}sheet1.write(0,0,u'得分統計')sheet1.write(1,0,u'書法得分')sheet1.write(2,0,u'閱讀得分')sheet1.write(3,0,u'演講得分')sheet1.write(4,0,u'聽力得分')temp = ['writing','reading','speaking','listening']for pos,name in enumerate(mdict): sheet1.write(0,pos+1,name) for p,v in enumerate(temp): sheet1.write(p+1,pos+1,mdict[name][v])sheet1.write(5,0,u'總分統計')for i in range(len(mdict)): forstr = chr(65+i+1)+'2+'+chr(65+i+1)+'3+'+chr(65+i+1)+'4+'+chr(65+i+1)+'5' print forstr sheet1.write(5,i+1,xlwt.Formula(forstr))f.save('得分統計')shutil.move(u'得分統計', path)1234567891011121314151617181920212223242526272829303132333435363712345678910111213141516171819202122232425262728293031323334353637

效果圖: 這里寫圖片描述


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一本大道香蕉久在线播放29| 国产在线高清精品| 久久免费精品日本久久中文字幕| 91久久精品美女| 欧美高清电影在线看| 久久久国产精品亚洲一区| 午夜精品久久久久久久久久久久久| 91视频免费在线| 国产欧美精品一区二区| 俺也去精品视频在线观看| 亚洲bt欧美bt日本bt| 国产欧美一区二区三区视频| 亚洲午夜精品久久久久久久久久久久| 久久精品视频99| 久久久精品一区| www.日韩免费| 欧美国产日韩一区二区在线观看| 国产一区二区三区中文| 亚洲性日韩精品一区二区| 亚洲欧洲一区二区三区久久| 中文字幕精品久久| 国产精品日日摸夜夜添夜夜av| 国产在线999| 国产精品久久999| 国产精品香蕉国产| 亚洲高清av在线| 日本91av在线播放| 亚洲欧美精品一区二区| 一区二区三区视频免费在线观看| 久久夜色精品国产| 日韩一区二区在线视频| 欧美男插女视频| 亚洲欧美在线免费| 亚洲奶大毛多的老太婆| 欧美性高潮在线| 欧美成人激情在线| 亚洲综合中文字幕68页| 日韩精品福利网站| 欧美成人一区二区三区电影| 久久天天躁狠狠躁夜夜爽蜜月| 国产精品吴梦梦| 久久精品国产综合| 一个人看的www久久| 激情av一区二区| 68精品久久久久久欧美| 日韩精品一二三四区| 日韩视频免费大全中文字幕| 亚洲欧美日韩精品久久| 中国china体内裑精亚洲片| 国产精品香蕉在线观看| 97国产精品视频人人做人人爱| 国产精品视频在线播放| 欧美激情va永久在线播放| 日韩在线免费视频观看| 欧洲成人免费视频| 精品少妇一区二区30p| 亚洲欧美日韩视频一区| 欧美色视频日本版| 日韩视频在线免费| 日韩毛片在线看| 欧美激情一二三| 久久久精品美女| 亚洲欧美激情四射在线日| 久久99久久久久久久噜噜| 97精品国产aⅴ7777| 俺去了亚洲欧美日韩| 欧美亚洲国产日本| 国产丝袜一区二区三区免费视频| 亚洲国产女人aaa毛片在线| 欧美成人午夜免费视在线看片| 欧美日韩国产第一页| 欧美日韩视频免费播放| 2019最新中文字幕| 欧美成人一二三| 亚洲欧美国产日韩中文字幕| 国产视频精品久久久| 一个人www欧美| 中文字幕日韩综合av| 在线视频日韩精品| 久久精视频免费在线久久完整在线看| 亚洲欧美日韩一区在线| 亚洲第五色综合网| 国产精品一区二区久久精品| 国外成人性视频| 精品欧美激情精品一区| 国产亚洲激情视频在线| 亚洲精品一区久久久久久| 国产日韩欧美夫妻视频在线观看| 97在线免费视频| 97久久国产精品| 热久久免费国产视频| 91在线中文字幕| 日韩美女写真福利在线观看| 国模极品一区二区三区| 国产精品丝袜高跟| 亚洲成人亚洲激情| 久久av中文字幕| 欧美xxxx做受欧美.88| 最近2019中文字幕一页二页| 日韩精品视频三区| 久久久久成人网| 欧美日韩国产一区二区| 97超级碰碰碰久久久| 欧美日韩精品在线视频| 亚洲一区二区中文| 日韩视频免费中文字幕| 亚洲黄页视频免费观看| 国产精品69精品一区二区三区| 日韩av快播网址| 正在播放亚洲1区| 欧美日韩国产一区在线| 精品久久久久久久久久ntr影视| 日韩视频在线免费| 一本大道香蕉久在线播放29| 亚洲第一级黄色片| 久久韩剧网电视剧| 日韩av片免费在线观看| 久久夜精品香蕉| 久久中文字幕在线| 亚洲精品第一国产综合精品| 久久久久久久久综合| 午夜精品一区二区三区视频免费看| 91精品国产高清久久久久久91| 国产视频久久久久久久| 午夜精品视频在线| 欧美视频二区36p| 久久精品国产欧美亚洲人人爽| 日本一区二区三区四区视频| 伊人久久精品视频| 日韩国产在线播放| 91久久国产精品91久久性色| 久久久久久这里只有精品| 亚洲图中文字幕| xvideos亚洲人网站| 国产精品极品美女在线观看免费| 日韩一区二区三区国产| 亚洲国产成人精品电影| 国产欧美日韩丝袜精品一区| 久久99热这里只有精品国产| 久久久久久有精品国产| 亚洲精品aⅴ中文字幕乱码| 亚洲一区二区黄| 国产精品一久久香蕉国产线看观看| 国产欧美精品久久久| 插插插亚洲综合网| 38少妇精品导航| 日本精品va在线观看| 国产精品免费观看在线| 国产精品白嫩初高中害羞小美女| 欧美寡妇偷汉性猛交| 亚洲欧美国产高清va在线播| 最近2019年日本中文免费字幕| 日韩午夜在线视频| 国产不卡av在线| 在线成人激情黄色| 亚洲欧洲xxxx| 国产视频福利一区| 久久视频在线观看免费| 国产精品一二三视频| 亚洲精品中文字幕有码专区| 免费91在线视频| 国产精品视频公开费视频| 国产欧美日韩视频| 国产成人在线亚洲欧美|