亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python實現報表自動化應該怎么做

發布時間:2020-03-23 16:54:47 來源:億速云 閱讀:140 作者:小新 欄目:編程語言

python實現報表自動化應該怎么做?如果能夠實現報表自動化,那我們將節約不少的時間,更高效的完成工作內容。那么,如何利用python實現報表自動化呢?本文將介紹xlwt xlrdxlutils的常用功能,xlwtExcel時公式的應用以及xlwt寫入特定目錄來手把手帶大家實現報表自動化。

python實現報表自動化應該怎么做

 

1、pythonexcel

 

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

 

import xlwt  # 

 

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

 

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

 

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

 

一個excel表格中可以添加多個sheet

 

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

 

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

 

這條語句實現的功能就是往第i行第j列存第三個參數的內容,

 

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

 

合并單元格并寫入內容:

 

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

 

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

 

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

 

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

 

#coding=utf-8

 

import xlwt

 

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

 

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

 

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

 

save('xlwt_tutorial')

 

我們開始往sheet中寫入內容,不傳入style參數先只使用write函數

 

#coding=utf-8

 

import xlwt

 

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

 

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

 

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

 

row = 0

 

temp = [u'姓名',u'年齡',u'學校',u'專業']

 

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'清華大學')

 

row += 1

 

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

 

sheet1.write(row,1,20)

 

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

 

f.save('xlwt_tutorial')

 

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

 

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

 

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

 

將第2-3行第4列合并

 

2、pythonxd讀excel 

 

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

 

import xlrd  # 

 

(2)基礎教程&實戰打開一個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中的內容

 

f = xlrd.open_workbook(r'xlwt_tutorial')

 

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

 

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

 

#輸出sheet的名稱,行數,列數

 

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

 

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

 

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

 

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

 

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

 

輸出為:[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 error

 

輸出為:張三2

 

3、xlutils 常用功能

 

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

 

import xlutils

 

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

 

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

 

輸出為:表一輸出的表格已經改變。

 

(4)xlwtExcel時公式的應用我們寫用xlwt寫一個表格

 

#coding=utf-8

 

import xlwt

 

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

 

f.save('得分統計')

 

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

 

輸出為:

 

B2+B3+B4+B5

 

C2+C3+C4+C5

 

5、xlwt寫入特定目錄

 

由于代碼分層的緣故,使代碼整體框架優美。我們需要把文件寫入到特定目錄下。但是由于xlwt中沒有直接寫入到特定目錄的函數。因此使用shutil.move函數來把文件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()  # 創建工作簿

 

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)

看完上文,你對python實現報表自動化應該怎么做大概了解了嗎?如果想了解更多,歡迎關注億速云行業資訊頻道哦

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

北票市| 阿克苏市| 依安县| 辽中县| 正定县| 三都| 郁南县| 随州市| 陈巴尔虎旗| 响水县| 福贡县| 东乌珠穆沁旗| 宁晋县| 长丰县| 鲁甸县| 介休市| 泗洪县| 娄底市| 河东区| 娄烦县| 鹤岗市| 肥乡县| 大名县| 波密县| 腾冲县| 綦江县| 内黄县| 东至县| 耿马| 乌兰县| 正安县| 江北区| 甘孜| 凭祥市| 阿拉善盟| 突泉县| 苍溪县| 祁门县| 轮台县| 沾化县| 建水县|