使用python套用excel模板_Python自动化办公Excel-从表中批量复制粘贴数据到新表
1、模塊安裝
1)cmd模式下:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xlrd
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple openpyxl
2)如果有安裝Pycharm,則在程序中操作如下:
菜單欄:File -> Settings -> Project: **.py -> Project INterpreter -> + search xlrd
菜單欄:File -> Settings -> Project: **.py -> Project INterpreter -> + search openpyxl
2、思路步驟
步驟如下:
1.提取“原報表”第8行往下不為空的數據
2.寫入到“抽出數據報表”數組中,設置寫入內容的格式及邊框、行高等,保存
資源下載:
1)提取
使用xlrd。讀取工作簿,存入wb,然后選取第一個工作表,存入ws。新建一個列表data用于儲存獲取的數據。然后從第8行(對應索引為0)遍歷工作表。將每行的數據放入列表info_list。在寫入到數組之前,用if語句設置兩個條件:先判斷是不是空值,再判斷長度是否大于1000mm,才放入總列表data。
import xlrd
file = "匯總.xlsx"
wb = xlrd.open_workbook(file,on_demand=True) # 讀取工作簿
ws = wb.sheets()[0] # 選第一個工作表
data = []
title1 = ws.cell(0,0).value.strip() #讀取標題,非數字
# print(title1)
for row in range(2, ws.nrows):
col1= ws.cell(row, 0).value
col2 = ws.cell(row, 1).value
col3 = ws.cell(row, 2).value
info_list = [col1, col2, col3]
if info_list[0] != "": # 去除空數據
if col1 >1000:
data.append(info_list)
print(data)
data數據如下:
[[1594.0, 400.0, 38.0], [1045.0, 300.0, 38.0], [2480.0, 149.0, 20.0], [1174.0, 153.0, 20.0], [1450.0, 180.0, 45.0], [1100.0, 90.0, 90.0], [1123.0, 90.0, 90.0], [1155.0, 90.0, 90.0], [1050.0, 53.0, 53.0], [1100.0, 70.0, 45.0], [2050.0, 70.0, 45.0], [2340.0, 70.0, 45.0], [3590.0, 70.0, 45.0]]
2)寫入
獲取完數據,開始寫入統計表。順便導入“設置單元格格式”的相關的模塊。因為數據列表data中全是子列表,所以直接使用append方法整行寫入最為方便。數據寫完后,需要設置行高,字號,加粗,對齊,單元格邊框等。全部設置完后保存數據。
from openpyxl import load_workbook
from openpyxl.styles import Border, Side, PatternFill, Font, GradientFill, Alignment #設置單元格格式
thin = Side(border_style="thin", color="000000")#定義邊框粗細及顏色
file = "統計表模板.xlsx"
wb = load_workbook(file)
ws = wb.active
#寫入數據
for i in data:
ws.append(i)
#設置字號,對齊,縮小字體填充,加邊框
#Font(bold=True)可加粗字體
for row_number in range(2, ws.max_row+1):
ws.row_dimensions[row_number].height = 25 #設置行高
for col_number in range(1,4):
c = ws.cell(row=row_number,column=col_number)
c.font = Font(size=11,bold=True)
c.border = Border(top=thin, left=thin, right=thin, bottom=thin)
c.alignment = Alignment(horizontal="center", vertical="center")
wb.save("統計表.xlsx")
完整代碼如下:
import xlrd
file = "匯總.xlsx"
wb = xlrd.open_workbook(file,on_demand=True) # 讀取工作簿
ws = wb.sheets()[0] # 選第一個工作表
data = []
title1 = ws.cell(0,0).value.strip() #讀取標題,非數字
# print(title1)
for row in range(2, ws.nrows):
col1= ws.cell(row, 0).value
col2 = ws.cell(row, 1).value
col3 = ws.cell(row, 2).value
info_list = [col1, col2, col3]
if info_list[0] != "": # 去除空數據
if col1 >1000:
data.append(info_list)
print(data)
from openpyxl import load_workbook
from openpyxl.styles import Border, Side, PatternFill, Font, GradientFill, Alignment #設置單元格格式
thin = Side(border_style="thin", color="000000")#定義邊框粗細及顏色
file = "統計表模板.xlsx"
wb = load_workbook(file)
ws = wb.active
#寫入數據
for i in data:
ws.append(i)
#設置字號,對齊,縮小字體填充,加邊框
#Font(bold=True)可加粗字體
for row_number in range(2, ws.max_row+1):
ws.row_dimensions[row_number].height = 25 #設置行高
for col_number in range(1,4):
c = ws.cell(row=row_number,column=col_number)
c.font = Font(size=11,bold=True)
c.border = Border(top=thin, left=thin, right=thin, bottom=thin)
c.alignment = Alignment(horizontal="center", vertical="center")
wb.save("統計表.xlsx")
總結
以上是生活随笔為你收集整理的使用python套用excel模板_Python自动化办公Excel-从表中批量复制粘贴数据到新表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: diskgenius 数据迁移_活见鬼,
- 下一篇: python 获取当前时间再往前几个月_