真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python實(shí)現(xiàn)報(bào)表自動(dòng)化應(yīng)該怎么做-創(chuàng)新互聯(lián)

python實(shí)現(xiàn)報(bào)表自動(dòng)化應(yīng)該怎么做?如果能夠?qū)崿F(xiàn)報(bào)表自動(dòng)化,那我們將節(jié)約不少的時(shí)間,更高效的完成工作內(nèi)容。那么,如何利用python實(shí)現(xiàn)報(bào)表自動(dòng)化呢?本文將介紹xlwt 、xlrd、xlutils的常用功能,xlwt寫Excel時(shí)公式的應(yīng)用以及xlwt寫入特定目錄來(lái)手把手帶大家實(shí)現(xiàn)報(bào)表自動(dòng)化。

創(chuàng)新互聯(lián)建站為您提適合企業(yè)的網(wǎng)站設(shè)計(jì)?讓您的網(wǎng)站在搜索引擎具有高度排名,讓您的網(wǎng)站具備超強(qiáng)的網(wǎng)絡(luò)競(jìng)爭(zhēng)力!結(jié)合企業(yè)自身,進(jìn)行網(wǎng)站設(shè)計(jì)及把握,最后結(jié)合企業(yè)文化和具體宗旨等,才能創(chuàng)作出一份性化解決方案。從網(wǎng)站策劃到成都網(wǎng)站建設(shè)、成都網(wǎng)站制作, 我們的網(wǎng)頁(yè)設(shè)計(jì)師為您提供的解決方案。

python實(shí)現(xiàn)報(bào)表自動(dòng)化應(yīng)該怎么做

1、python寫excel

(1)準(zhǔn)備工作安裝xlwt :在終端中輸入pip install xlwt或者easy_install xlwt引入xlwt包 :

import xlwt  # 寫

(2)基礎(chǔ)教程新建工作簿&增加sheet: 新建一個(gè)工作簿,然后往里添加sheet

f = xlwt.Workbook()  # 創(chuàng)建工作簿

sheet1 = f.add_sheet(u'sheet1', cell_overwrite_ok=True)

一個(gè)excel表格中可以添加多個(gè)sheet

往sheet中寫入內(nèi)容: sheet.write函數(shù)可以傳三個(gè)參數(shù)第i(參數(shù)1)第j(參數(shù)2)列存入內(nèi)容(參數(shù)3)

sheet1.write(i, j, '第i行第j列存放此內(nèi)容', style)

這條語(yǔ)句實(shí)現(xiàn)的功能就是往第i行第j列存第三個(gè)參數(shù)的內(nèi)容,

第四個(gè)參數(shù)是樣式(如字體,背景),可以不傳第四個(gè)參數(shù)。

合并單元格并寫入內(nèi)容:

sheet1.write_merge(x, x + m, y, y + n, '內(nèi)容', style)

這條y語(yǔ)句表示將[x:x+m]行[y:y+n]列的矩陣合并成一個(gè)單元格。存放第五個(gè)參數(shù)的#內(nèi)容,同理,style參數(shù)可以不傳參

最后使用f.save(‘demo’)就可以把f保存到excel了

(3)實(shí)戰(zhàn)我們可以先新建一個(gè)工作簿,然后往里添加兩個(gè)sheet,然后查看效果

#coding=utf-8

import xlwt

f = xlwt.Workbook()  # 創(chuàng)建工作簿

sheet1 = f.add_sheet(u'表一', cell_overwrite_ok=True)

sheet2 = f.add_sheet(u'表二', cell_overwrite_ok=True)

save('xlwt_tutorial')

我們開始往sheet中寫入內(nèi)容,不傳入style參數(shù)先只使用write函數(shù)

#coding=utf-8

import xlwt

f = xlwt.Workbook()  # 創(chuàng)建工作簿

sheet1 = f.add_sheet(u'表一', cell_overwrite_ok=True)

sheet2 = f.add_sheet(u'表二', cell_overwrite_ok=True)

row = 0

temp = [u'姓名',u'年齡',u'學(xué)校',u'專業(yè)']

for pos,v in enumerate(temp):

sheet1.write(row,pos,v)

row += 1

sheet1.write(row,0,u'張三')

sheet1.write(row,1,18)

sheet1.write(row,2,u'清華大學(xué)')

row += 1

sheet1.write(row,0,u'李四')

sheet1.write(row,1,20)

sheet1.write(row,2,u'北京大學(xué)')

f.save('xlwt_tutorial')

這樣我們就建立了一個(gè)3行4列的表格。(write函數(shù)行和列值都是從0開始的)

下面我們使用write_merge函數(shù)來(lái)合并單元格并寫入在f.save之前添加一行代碼

sheet1.write_merge(1,2,3,3,u'漢語(yǔ)言文學(xué)')

將第2-3行第4列合并

2、pythonxd讀excel 

(1)準(zhǔn)備工作安裝xlrd :在終端中輸入pip install xlrd或者easy_install xlrd引入xlrd包 :

import xlrd  # 讀

(2)基礎(chǔ)教程&實(shí)戰(zhàn)打開一個(gè)Excel,然后輸出所有sheet的名字

#coding=utf-8

import xlrd

import uniout

f = xlrd.open_workbook(r'xlwt_tutorial')

print f.sheet_names()

輸出:[u’表一’, u’表二’]

得到表格里的所有的sheet

for i in range(len(f.sheet_names())):

sheet1 = workbook.sheet_by_index(i)

得到sheet中的內(nèi)容

f = xlrd.open_workbook(r'xlwt_tutorial')

sheet1 = f.sheet_by_index(0)  #打開第一個(gè)sheet

sheet2 = f.sheet_by_name(u'表二')  #打開名字為小葡萄的sheet

#輸出sheet的名稱,行數(shù),列數(shù)

print sheet1.name,sheet1.nrows,sheet1.ncols

print sheet2.name,sheet2.nrows,sheet2.ncols

輸出為:表一 3 4表二 0 0

print sheet1.row_values(1)  #獲取第二行內(nèi)容

print sheet1.col_values(2)  #獲取第三列內(nèi)容

輸出為:[u’張三’, 18.0, u’清華大學(xué)’, u’漢語(yǔ)言文學(xué)’][u’學(xué)校’, u’清華大學(xué)’, u’北京大學(xué)’]

# 獲取單元格內(nèi)容

print sheet1.cell(1,0).value

# 獲取單元格內(nèi)容的數(shù)據(jù)類型

print sheet1.cell(1,1).ctype

#ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error

輸出為:張三2

3、xlutils 常用功能

(1)準(zhǔn)備工作安裝xlutils :在終端中輸入pip install xlutils或者easy_install xlutils引入xlutils包 :

import xlutils

(2)xlutils中copy功能我們可能會(huì)遇到一個(gè)問(wèn)題,想對(duì)一個(gè)存儲(chǔ)好的Excel進(jìn)行編輯***。但是xlrd是只讀模式,不能進(jìn)行編寫。而xlwt是只寫模式,不能讀入Excel文件進(jìn)行編輯。我們可以采用xlrd打開一個(gè)文檔,后采用xlutils中copy功能把文檔拷貝*,然后進(jìn)行編輯即可。

import xlrd

from xlutils.copy import copy

f = xlrd.open_workbook(r'xlwt_tutorial')

wb = copy(f) # 將f拷貝到wb

sheet1 = wb.get_sheet(0) # 打開sheet

print sheet1.name

sheet1.write(3,0,'change')

wb.save('xlwt_tutorial')

輸出為:表一輸出的表格已經(jīng)改變。

(4)xlwt寫Excel時(shí)公式的應(yīng)用我們寫用xlwt寫一個(gè)表格

#coding=utf-8

import xlwt

f = xlwt.Workbook()  # 創(chuàng)建工作簿

sheet1 = f.add_sheet(u'得分統(tǒng)計(jì)', 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'得分統(tǒng)計(jì)')

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('得分統(tǒng)計(jì)')

統(tǒng)計(jì)grape的總分和monkey的總分:在f.save之前加入代碼:

sheet1.write(5,0,u'總分統(tǒng)計(jì)')

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))

輸出為:

B2+B3+B4+B5

C2+C3+C4+C5

5、xlwt寫入特定目錄

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

#coding=utf-8

import xlwt

import os

import shutil

path = '../sheet/'

isExists = os.path.exists(path) # 判斷目錄是否存在

if not isExists:   # 如果目錄不存在,新建目錄

os.makedirs(path)

f = xlwt.Workbook()  # 創(chuàng)建工作簿

sheet1 = f.add_sheet(u'得分統(tǒng)計(jì)', 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'得分統(tǒng)計(jì)')

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'總分統(tǒng)計(jì)')

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('得分統(tǒng)計(jì)')

shutil.move(u'得分統(tǒng)計(jì)', path)

看完上文,你對(duì)python實(shí)現(xiàn)報(bào)表自動(dòng)化應(yīng)該怎么做大概了解了嗎?如果想了解更多,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道哦

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


網(wǎng)站名稱:python實(shí)現(xiàn)報(bào)表自動(dòng)化應(yīng)該怎么做-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://weahome.cn/article/djhdgh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部