python处理excel和word文档

背景: 最近在处理一批中文数据。这些数据格式不一,有使用word的,有使用excel的,也有使用json等的。这篇主要记录下使用python来处理word和excel。

一. 使用python处理excel

  1. 读取excel数据

    (打开excel,通过索引获取指定的sheet内容)

  data = xlrd.open_workbook(fileName) #打开excel
  table = data.sheet_by_index(0)#获取sheet,主要通过索引获取(默认从0开始)
  1. 往excel写数据
    (利用pandas的DataFrame)

    这里我主要是要处理原始excel的某一列,然后再把生成的内容追加到最后一列。

def dealExcel(fileName, fileResult):
 	data = xlrd.open_workbook(fileName) #打开excel
  	table = data.sheet_by_index(0)#获取sheet,主要通过索引获取(默认从0开始)
  	dataToWrite = []
  	for rowIndex in range(1, table.nrows):#过滤掉表头
    	line = table.row_values(rowIndex)#获取指定行的内容
      	# 中间具体细节省略, 假设生成的内容为appendContent
      	line.append(appendContent)
      	dataToWrite.append(line)
  	columns = table.row_values(0)
  	columns.append("xxx")
  	dt = pd.DataFrame(dataToWrite, columns=columns)#将数据转换成dataFrame格式
  	dt.to_excel(fileResult, index=0)#直接写入excel文件(xlsx格式)

二. 利用python处理word文档

  1. 读取word内容
 doc = docx.Document(fileInput)#获取输入文档
 lenDoc = len(doc.paragraphs)
 print("总共%s个段落" % lenDoc)
  1. 往word中写内容
 
 def filterWords(fileInput,  fileResult):
    
     doc = docx.Document(fileInput)#获取输入文档
     lenDoc = len(doc.paragraphs)
     print("总共%s个段落" % lenDoc)
     
 	 resultFile = docx.Document()#结果文件
     count = 0
     for i in range(1, lenDoc):
         paraSingle = doc.paragraphs[i].text.strip()#读取段落数据
         # 中间具体过程省略,假设经过处理后的输出为paraSingle
         resultFile.add_paragraph(paraSingle)#添加段落
     resultFile.save(fileResult)#保存文件
  1. 安装docx
pip3 install docx

or

pip3 install docx --user

若使用时出现错误: MoudleNotFoundError: No moudle named ‘expections’

那么先卸载docx

 pip3 uninstall docx

然后找一个兼容的包下载于本地再进行安装:(参考:python安装docx模块出现Import Error: No module named 'exceptions’的解决方案

 pip3 install python_docx-0.8.10-py2.py3-none-any.whl 

or

 pip3 install python_docx-0.8.10-py2.py3-none-any.whl --user

上述安装包下载地址python_docx-0.8.10-py2.py3-none-any.whl --user

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值