利用python写入、生成excel、word

1,模块的安装

python处理excel需要用到的模块为openpyxl,安装方法:

pip install openpyxl

处理word时需要用到的模块为docx,安装方法:

pip install python-docx

下面先介绍openpyxl的基本用法

2,openpyxl操作excel表格

(1)读取excel表格

先导入load_workbook函数

from openpyxl import load_workbook

此次用来测试的文档:

excel_file_name = "输入\风荷载作用下的弯矩.xlsx"

文档内容大致如下:

图片

接下来加载excel文档

wb = load_workbook(excel_file_name)print(wb.sheetnames) #打印表单名称

如果打印出表单名称则加载成功

要读取某一表单要用

sheet =  wb['Sheet1']

读取表单Sheet1 某个单元格的数值:

cell = sheet.cell(row=row, column=column)value = cell.value

如:

from openpyxl import load_workbookexcel_file_name = "输入\风荷载作用下的弯矩.xlsx"
wb = load_workbook(excel_file_name)print(wb.sheetnames) #打印表单名称sheet = wb['Sheet1']
cell = sheet.cell(row=1, column=1)print(cell.value)

输出为

['Sheet1']梁端弯矩输入

这样就读出了我们上面excel表格中第一行第一列的数值。

row为单元格所在行数,column为列数。这时与我们平时的编程习惯不同,row和column必须大于等于1,不然会报错。

cell = sheet.cell(row=0, column=1)print(cell.value)

输出:

    cell = sheet.cell(row=0, column=1)  File "C:ProgramDataAnaconda3libsite-packagesopenpyxlworksheetworksheet.py", line 238, in cell    raise ValueError("Row or column values must be at least 1")ValueError: Row or column values must be at least 1

读取某一列的数据:

datas = list(sheet.columns)[1] #读取第二列的数据print(datas)

输出

(<MergedCell 'Sheet1'.B1>, <Cell 'Sheet1'.B2>, <Cell 'Sheet1'.B3>, <Cell 'Sheet1'.B4>, <Cell 'Sheet1'.B5>, <Cell 'Sheet1'.B6>, <Cell 'Sheet1'.B7>, <Cell 'Sheet1'.B8>, <Cell 'Sheet1'.B9>, <Cell 'Sheet1'.B10>, <Cell 'Sheet1'.B11>, <Cell 'Sheet1'.B12>, <Cell 'Sheet1'.B13>, <Cell 'Sheet1'.B14>, <Cell 'Sheet1'.B15>, <Cell 'Sheet1'.B16>, <Cell 'Sheet1'.B17>, <Cell 'Sheet1'.B18>, <Cell 'Sheet1'.B19>, <Cell 'Sheet1'.B20>, <Cell 'Sheet1'.B21>, <Cell 'Sheet1'.B22>, <Cell 'Sheet1'.B23>, <Cell 'Sheet1'.B24>, <Cell 'Sheet1'.B25>, <Cell 'Sheet1'.B26>, <Cell 'Sheet1'.B27>, <Cell 'Sheet1'.B28>, <Cell 'Sheet1'.B29>, <Cell 'Sheet1'.B30>, <Cell 'Sheet1'.B31>, <Cell 'Sheet1'.B32>, <Cell 'Sheet1'.B33>, <Cell 'Sheet1'.B34>, <Cell 'Sheet1'.B35>, <Cell 'Sheet1'.B36>, <Cell 'Sheet1'.B37>, <Cell 'Sheet1'.B38>, <Cell 'Sheet1'.B39>, <Cell 'Sheet1'.B40>, <Cell 'Sheet1'.B41>, <Cell 'Sheet1'.B42>, <Cell 'Sheet1'.B43>, <Cell 'Sheet1'.B44>, <Cell 'Sheet1'.B45>, <Cell 'Sheet1'.B46>, <Cell 'Sheet1'.B47>, <Cell 'Sheet1'.B48>, <Cell 'Sheet1'.B49>, <Cell 'Sheet1'.B50>, <Cell 'Sheet1'.B51>, <Cell 'Sheet1'.B52>, <Cell 'Sheet1'.B53>, <Cell 'Sheet1'.B54>, <Cell 'Sheet1'.B55>, <Cell 'Sheet1'.B56>, <Cell 'Sheet1'.B57>, <Cell 'Sheet1'.B58>, <Cell 'Sheet1'.B59>, <Cell 'Sheet1'.B60>, <Cell 'Sheet1'.B61>, <Cell 'Sheet1'.B62>)

可以看见返回的是Cell类型的数据,可以用上面读取单元格的方法读取每一个数据的代表的数值

datas = list(sheet.columns)[1]for data in datas:  print(data.value)

输出:

图片

可以看出我们已经把表单第二列的数据读取出来了。

同时某一行的数据我们可以用datas = list(sheet.rows)[row_id]

(2)生成excel表格

要引入Workbook模块

from openpyxl import Workbookwb = Workbook()ws = wb.active# 数值写入ws["A2"] = "自定义的数值"ws.title = "自定义的表单名称"wb.save("自定义的excel文件.xlsx")

下面介绍python-docx的基本用法

from docx import Document

(1)生成word文档并写入:

def creat_word(filename):  doc = Document()  doc.add_heading(time.ctime()) #写入header  doc.save(filename)

写入文字:

doc.add_paragraph("你所要输入的文字",style="List Bullet")

插入图片:

from docx.shared import Inchesdoc.add_picture(picpath,width=Inches(6.25)) #Inches是用来固定插入图片的宽度

(2)打开已有文档并写入

doc = Document(filename) #filename 要打开的文件名

然后写入方式跟上面的教程一样。

 2019-06-11 10:44

阅读原文

简介:开源CAE技术爱好者,编程爱好者,计算力学,欢迎志同道合的朋友一起交流。欢迎关注微信公众号:挨踢的土木佬
(0)
打赏 喜欢就点个赞支持下吧 喜欢就点个赞支持下吧

声明:本文来自“挨踢的土木佬”,分享链接:https://www.zyxiao.com/p/307234    侵权投诉

网站客服
网站客服
内容投稿 侵权处理
分享本页
返回顶部