使用 docx 库读取 Word 中表格数据

需求如下图:
aaec2fb2f0774b64b9a1930d2b56888f_.png

从下图Word表格中,读取填入的数据,并进行判断选项,最终将数据填入客户系统。

代码处理如下:

  import docx
  from docx import Document #导入库

  path = r"\\Mac\Home\Desktop\\asd.docx" #文件路径
  document = Document(path) #读入文件
  tables = document.tables #获取文件中的表格集
  table = tables[0]#获取文件中的第一个表格
  list = []
  print(table.cell)
  for i in range(0,len(table.rows)):#从表格第1行开始循环读取表格数据
	  for j in range(0,7):
		  result = table.cell(i,j).text
		  #cell(i,0)表示第(i+1)行第1列数据,以此类推
		  # print(result)
		  a = result.split("\n")
		  if a not in list:
			  list.append(a)
  print(list)

最终读取到如下:
86c7fe207698451ca54d68a6157ad7c7_.png

为了方便显示,已将每个小列表进行换行处理。最终便可在得到的列表中取到想要的数据了。Word表格中若为空行,读出来的数据则为 [’’]

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 好的,这是一段使用 python docx 读取 excel 数据,并将其按行写入 word 表格的代码,带有文注释: ``` # 导入所需 import docx import xlrd # 打开excel文件,读取数据 book = xlrd.open_workbook("excel_file.xlsx") sheet = book.sheet_by_index(0) # 新建一个word文档 doc = docx.Document() # 遍历excel的每一行数据 for row_index in range(sheet.nrows): # 将每一行的数据写入word表格的一行 table = doc.add_table(rows=1, cols=sheet.ncols) row = table.rows[0] for col_index in range(sheet.ncols): cell_value = sheet.cell(row_index, col_index).value row.cells[col_index].text = str(cell_value) # 保存word文档 doc.save("word_file.docx") ``` 在代码,我们先导入了 `docx` 和 `xlrd` 。接着,我们使用 `xlrd` 打开了 excel 文件,并读取了里面的数据。 接下来,我们新建了一个 word 文档,并遍历了 excel 的每一行数据,将它们写入 word 表格的一行。最后,我们保存了这个 word 文档。 ### 回答2: 使用Python的docx可以很方便地实现读取Excel数据,并按行写入Word表格。下面是一个示例代码,代码包含文注释: ```python import openpyxl from docx import Document # 打开Excel文件 wb = openpyxl.load_workbook('example.xlsx') # 选择第一个工作表 sheet = wb.active # 创建一个新的Word文档 doc = Document() # 获取Excel的行数和列数 rows = sheet.max_row cols = sheet.max_column # 读取Excel数据,并按行写入Word表格 for row in range(1, rows+1): # 创建一个新的表格行 table_row = doc.add_table(rows=1, cols=cols) for col in range(1, cols+1): # 获取Excel的单元格数据 cell_value = sheet.cell(row=row, column=col).value # 将数据写入Word表格的对应位置 table_row.cell(0, col-1).text = str(cell_value) # 保存Word文档 doc.save("output.docx") # 关闭Excel文件 wb.close() ``` 以上代码通过openpyxl打开并读取Excel文件数据,在docx创建一个新的Word文档,并按行写入Word表格。最后将结果保存为一个新的Word文档。请确认你已经将要读取的Excel文件命名为"example.xlsx",并安装了openpyxl和python-docx。 ### 回答3: 可以使用python docx读取Excel数据,并按行写入Word表格。以下是一个示例代码: ```python import openpyxl from docx import Document # 打开Excel文件 workbook = openpyxl.load_workbook('data.xlsx') # 选择sheet worksheet = workbook['Sheet1'] # 创建Word文档 doc = Document() # 创建表格 table = doc.add_table(rows=1, cols=3) # 获取Excel表格的行数和列数 max_row = worksheet.max_row max_col = worksheet.max_column # 读取Excel数据并按行写入Word表格 for row in range(1, max_row+1): # 在Word表格添加新行 table.add_row() for col in range(1, max_col+1): # 获取Excel单元格的值 cell_value = worksheet.cell(row=row, column=col).value # 将单元格的值写入Word表格 table.cell(row, col).text = str(cell_value) # 保存Word文档 doc.save('output.docx') # 关闭Excel文件 workbook.close() ``` 以上代码首先使用`openpyxl`打开Excel文件,并选择需要读取的sheet。然后使用`python-docx`创建一个空的Word文档,并创建一个表格。接下来,通过遍历Excel的行和列,读取单元格的值,并将其写入到Word表格对应的位置。最后,保存Word文档,并关闭Excel文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值