python處理word和excel表格資料
學習程序中遇到批量將excel表格資料填入到word的問題,對于excel的函式使用不是很熟悉,python中有處理word和excel的庫,所以學習使用python實作對資料的批量處理,首先是需要了解處理word和excel的具體操作,
python對編輯word表格
需要安裝第三方庫python-docx
python-docx API網址:https://python-docx.readthedocs.io/en/latest/#api-documentation
對表格的基本操作
# -*- coding: utf-8 -*-
from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.oxml.ns import qn
from docx.shared import Pt
path=r'C:\Users\hxy\Desktop\test.docx'#檔案路徑
doc=Document(path)#讀入檔案
#設定表格字體
doc.styles['Normal'].font.name = u'仿宋'
doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋')
#獲取所有的表格,回傳串列
tables=doc.tables
print(tables)
#讀取第一個表格的內容,獲取全部的表格內容加個回圈即可
table_1=tables[0]#第一個表
tb_rows=table_1.rows#獲取表格的行
#讀取每一行內容s
for i in range(len(tb_rows)):
row_data=https://www.cnblogs.com/thresh/p/[]
row_cells=tb_rows[i].cells
#讀取每一行單元格內容
for cell in row_cells:
#單元格內容
row_data.append(cell.text)
print(row_data)
#資料填入表格,兩種方式
table_1.cell(0,1).text="測驗使用"#單元格直接賦值
table_1.cell(0,3).paragraphs[0].add_run(u'whoami')#追加寫入資料
#單元格的屬性修改
run=table_1.cell(0,5).paragraphs[0].add_run("計算機")
run.bold=True#字體加粗
run.font.size = Pt(9) # 字體大小:小五-9
table_1.cell(0,5).paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.CENTER # 居中
doc.save(path)#檔案保存
python對excel表格的讀寫操作
python實作對excel表格的操作有xlrd(只能讀入,不能寫)、xlwd,openpyxl模塊能夠實作對excel的讀寫操作,
xlrd和xlwt都是針對Excel97-2003操作的,也就是以xls結尾的檔案,很顯然現在基本上都是Excel2007以上的版本,以xlsx為后綴,要對這種型別的Excel檔案進行操作要使用openpyxl,該模塊既可以進行“讀”操作,也可以進行“寫”操作,還可以對已經存在的檔案做修改,
xlrd網址:https://pypi.org/project/xlrd/
xlrd模塊讀取excel表格
# -*- coding: utf-8 -*-
import xlrd
excelDir=r'C:\Users\hxy\Desktop\test.xlsx'
# 打開表格
workbook=xlrd.open_workbook(excelDir)
# 獲取表名
worksheet_name=workbook.sheet_names()
print(worksheet_name)
# 根據序號打開表
worksheet=workbook.sheet_by_index(0)
# 獲取表的名稱,行,列
print(worksheet.name,worksheet.nrows,worksheet.ncols)
# 獲取第一行
rows=worksheet.row_values(0)
print(rows)
# 獲取單元格的值
data_1=worksheet.cell_value(1,7)
data_2=worksheet.cell(1,0).value
data_3=worksheet.row(1)[2].value
print(data_1,data_2,data_3)
# print(worksheet.cell(1,2))
#讀取指定作業表的表格內容
for i in range(worksheet.nrows):
row=worksheet.row_values(i)
print(row)
openpyxl網址:https://bitbucket.org/openpyxl/openpyxl/src/default/
使用openpyxl讀取和寫入excel
import openpyxl
excelDir=r'C:\Users\hxy\Desktop\test.xlsx'
#打開作業簿物件
workbook=openpyxl.load_workbook(excelDir)
#獲取作業簿中的所有表
sheetnames=workbook.sheetnames
print(sheetnames)
#獲取作業表物件
# sheetname=workbook[sheetnames[0]]
sheetname=workbook.worksheets[0]
print(sheetname)
#獲取表的屬性
name=sheetname.title
print(name)
rows,cols=sheetname.max_row,sheetname.max_column
print(rows,cols)
#按行或列方式獲取表中的資料
for row in sheetname.rows:
for cell in row:
print(cell.value,end=" ")
print()
print("=="*30)
for col in sheetname.columns:
for cell in col:
print(cell.value,end=" ")
print()
#獲取指定單元個的資料
data1=sheetname.cell_value(0,0)
data2=sheetname.cell(0,1).value
print(data1,data2)
# 插入一列
sheetname.insert_cols(1)
for index,row in enumerate(sheetname.rows):
if index==0:
row[0].value="https://www.cnblogs.com/thresh/p/編號"
else:
row[0].value=https://www.cnblogs.com/thresh/p/index
#可以插入串列資料
data=[10,"llc",'whoami','hellowordl']
sheetname.append(data)
#保存
workbook.save(filename=excelDir)
print('finish')
批量操作資料
? 因為資料格式是相同的,只是填入的資料不同,所以可以通過docx和xlrd對表格的基本操作,可以實作對資料的批量處理,首先使用xlrd將資料讀取到串列中,然后將串列的資料填入指定的表格中,
這里只是對word和excel的基本操作,能夠完成目前所需,另外設定單元格格式,設定資料格式等更多的操作還有待學習,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/145731.html
標籤:Python
下一篇:Python3.x基礎教程4 上
