Python自动化办公——xlrd、xlwt读写Excel
生活随笔
收集整理的這篇文章主要介紹了
Python自动化办公——xlrd、xlwt读写Excel
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、xlrd、xlwt讀寫Excel
1、讀操作
import xlrd# 1、打開工作本workbook xlsx = xlrd.open_workbook(r'.\7月下旬入庫表.xlsx')# 2、打開需要操作的表sheet table = xlsx.sheet_by_index(0) # table = xlsx.sheet_by_name('7月下旬入庫表')# 3、讀取指定單元格的數據 print(table.cell_value(1,1)) print(table.cell(1,1).value) print(table.row(1)[1].value)
2、寫操作
import xlwt# 1、新建一個工作本 new_workbook = xlwt.Workbook()# 2、為這個工作本中添加一個工作表 worksheet = new_workbook.add_sheet('new_test')# 3、向指定單元格寫入內容 worksheet.write(0,0,'test')# 4、保存 new_workbook.save('./test.xls')
3、帶文字格式的寫入操作
from xlutils.copy import copy import xlrd import xlwt# 1、打開需要進行操作的工作本,并將其進行復制操作 # 注意:使用讀取xls文件的時候都是使用的xlrd庫,但是這個庫只能操作 .xls格式,對于后來的 .xlsx的版本支持不算太好 # formatting_info 該參數默認為False,這可以節省內存;當取值為True時,會讀取各種格式的信息 tem_excel = xlrd.open_workbook(r'.\日統計.xls',formatting_info=True)# 2、選擇需要操作的工作表 tem_sheet = tem_excel.sheet_by_index(0)# 3、新建一個工作本,通過復制模板工作本的方式 new_excel = copy(tem_excel)# 4、選擇新的工作本中需要操作的工作表 new_sheet = new_excel.get_sheet(0)# 初始化樣式 style = xlwt.XFStyle()# 初始化字體 font = xlwt.Font() font.name = '微軟雅黑' font.bold = True font.height = 18 * 20 style.font = font# 初始化邊框,細邊框 borders = xlwt.Borders() borders.top = xlwt.Borders.THIN borders.bottom = xlwt.Borders.THIN borders.left = xlwt.Borders.THIN borders.right = xlwt.Borders.THIN style.borders = borders# 初始化對齊方式 alignment = xlwt.Alignment() alignment.horz = xlwt.Alignment.HORZ_CENTER alignment.vert = xlwt.Alignment.VERT_CENTER style.alignment = alignment# 5、向已選擇的工作表中寫入數據 new_sheet.write(2,1,12,style) new_sheet.write(3,1,18,style) new_sheet.write(4,1,19,style) new_sheet.write(5,1,15,style)# 6、保存文件 new_excel.save('./填寫.xls')
4、綜合案例:
import xlrd import xlwt from xlutils.copy import copyxlsx = xlrd.open_workbook(r'.\7月下旬入庫表.xlsx') table = xlsx.sheet_by_index(0)all_data = []# 循環讀取每一行的中的數據 for n in range(1,table.nrows):company = table.cell(n,1).value # 銷售商price = table.cell(n,3).value # 單價weight = table.cell(n,4).value # 入庫量data = {'company':company,'weight':weight,'price':price}all_data.append(data)# 以下內容可以用pandas的groupby輕易實現,這里用了一個笨方法 a_weight = [] a_total_price = []b_weight = [] b_total_price = []c_weight = [] c_total_price = []d_weight = [] d_total_price = []# 計算每個銷售商的總入庫量 和 總價 for i in all_data:if i['company'] == '張三糧配':a_weight.append(i['weight'])a_total_price.append(i['weight'] * i['price'])if i['company'] == '李四糧食':b_weight.append(i['weight'])b_total_price.append(i['weight'] * i['price'])if i['company'] == '王五小麥':c_weight.append(i['weight'])c_total_price.append(i['weight'] * i['price'])if i['company'] == '趙六麥子專營':d_weight.append(i['weight'])d_total_price.append(i['weight'] * i['price'])tem_excel = xlrd.open_workbook(r'.\7月下旬統計表.xls',formatting_info=True) tem_sheet = tem_excel.sheet_by_index(0)new_excel = copy(tem_excel) new_sheet = new_excel.get_sheet(0)style = xlwt.XFStyle()# 初始化字體 font = xlwt.Font() font.name = '微軟雅黑' font.bold = True font.height = 18 * 20 style.font = font# 初始化邊框,細邊框 borders = xlwt.Borders() borders.top = xlwt.Borders.THIN borders.bottom = xlwt.Borders.THIN borders.left = xlwt.Borders.THIN borders.right = xlwt.Borders.THIN style.borders = borders# 初始化對齊方式 alignment = xlwt.Alignment() alignment.horz = xlwt.Alignment.HORZ_CENTER alignment.vert = xlwt.Alignment.VERT_CENTER style.alignment = alignmentnew_sheet.write(2,1,len(a_weight),style) new_sheet.write(2,2,round(sum(a_weight)),style) new_sheet.write(2,3,round(sum(a_total_price),2),style)new_sheet.write(3,1,len(b_weight),style) new_sheet.write(3,2,round(sum(b_weight)),style) new_sheet.write(3,3,round(sum(b_total_price),2),style)new_sheet.write(4,1,len(c_weight),style) new_sheet.write(4,2,round(sum(c_weight)),style) new_sheet.write(4,3,round(sum(c_total_price),2),style)new_sheet.write(5,1,len(d_weight),style) new_sheet.write(5,2,round(sum(d_weight)),style) new_sheet.write(5,3,round(sum(d_total_price),2),style)new_excel.save('./7月下旬統計表.xls')
總結
以上是生活随笔為你收集整理的Python自动化办公——xlrd、xlwt读写Excel的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一、Vue基础语法学习笔记系列——插值操
- 下一篇: Web框架——Flask系列之WTF表单