有多个word文档,里面都是表格,要将其表格都提取出来,然后合并成一个。
在deepseek中输入提示词:
写一个Python脚本,完成批量提取word文档中表格的任务,具体步骤如下:
打开文件夹:D:360AI浏览器下载 ;
读取里面所有的word文档;
将所有word文档中的表格复制到一个Excel文件中,合并成一个表格;
Excel文件名称为:AI算法备案列表20240718.xlsx,保存在文件夹:D:360AI浏览器下载
注意:每一步都要输出信息到屏幕上
源代码:
import os
import docx
import pandas as pd
def extract_tables_from_word(file_path):
doc = docx.Document(file_path)
tables = []
for table in doc.tables:
data = []
for row in table.rows:
row_data = []
for cell in row.cells:
row_data.append(cell.text)
data.append(row_data)
tables.append(data)
return tables
def main():
input_folder = r'D:360AI浏览器下载'
output_file = os.path.join(input_folder, 'AI算法备案列表20240718.xlsx')
all_tables = []
for file_name in os.listdir(input_folder):
if file_name.endswith('.docx'):
file_path = os.path.join(input_folder, file_name)
print(f"Processing file: {file_path}")
tables = extract_tables_from_word(file_path)
all_tables.extend(tables)
if all_tables:
df = pd.DataFrame()
for i, table in enumerate(all_tables):
temp_df = pd.DataFrame(table)
df = pd.concat([df, temp_df], ignore_index=True)
print(f"Saving to Excel file: {output_file}")
df.to_excel(output_file, index=False, header=False)
else:
print("No tables found in the Word documents.")
if __name__ == "__main__":
main()
在vscode中运行这个python程序,成功合并: