工作任务:Excel表格中有大量文本,根据这些文本自动生成word文档
在chatgpt中输入提示词:
你是一个Python编程专家,写一个Python脚本,具体步骤如下:
读取Excel文件:"F:\AI自媒体内容\AI视频教程下载\udemy课程信息-部分-翻译版.xlsx";
读取A列第1行单元格内容,作为word文档的文件名,在文件夹“F:\AI自媒体内容\AI视频教程下载\新建文件夹”中新建word文档;
读取B列第1行单元格内容,作为word文档的第1段落,写入word文档;
读取C列第1行单元格内容,作为word文档的第2段落,写入word文档;
读取D列第1行单元格内容,作为word文档的第3段落,写入word文档;
循环以上步骤,直到第67行;
注意:每一步都要输出信息到屏幕
文件系统对文件名有一些限制,如不能包含某些特殊字符(如 :、/、*、?、<、>、|)。在文件名中可能存在这些非法字符,导致 python-docx 在保存文档时出现问题。需要在创建文件名之前清理这些非法字符。
源代码:
import openpyxl
from docx import Document
import os
import re
# Excel 文件路径
excel_path = r'F:\AI自媒体内容\AI视频教程下载\udemy课程信息-部分-翻译版.xlsx'
# Word 文档输出目录
output_dir = r'F:\AI自媒体内容\AI视频教程下载\新建文件夹'
# 创建输出目录如果不存在
if not os.path.exists(output_dir):
os.makedirs(output_dir)
print(f'创建输出目录: {output_dir}')
# 定义一个函数来清理文件名
def clean_filename(filename):
# 只保留字母、数字、空格和一些常用字符,其他字符都替换为下划线
return re.sub(r'[<>:"/\\|?*]', '_', filename)
# 打开 Excel 文件
wb = openpyxl.load_workbook(excel_path)
sheet = wb.active
# 遍历每一行 (假设第1行是表头,从第2行开始)
for i in range(2, 68):
raw_file_name = sheet[f'A{i}'].value
para1 = sheet[f'B{i}'].value
para2 = sheet[f'C{i}'].value
para3 = sheet[f'D{i}'].value
if raw_file_name is None:
print(f'第{i}行的文件名为空,跳过该行')
continue
file_name = clean_filename(raw_file_name)
word_file_path = os.path.join(output_dir, f'{file_name}.docx')
# 创建 Word 文档
doc = Document()
doc.add_paragraph(para1 if para1 else '')
doc.add_paragraph(para2 if para2 else '')
doc.add_paragraph(para3 if para3 else '')
# 保存 Word 文档
doc.save(word_file_path)
# 输出信息到屏幕
print(f'已创建 Word 文档: {word_file_path}')
print('完成所有文档的创建.')