工作任务: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 openpyxlfrom docx import Documentimport osimport re# Excel 文件路径excel_path = rF:\AI自媒体内容\AI视频教程下载\udemy课程信息-部分-翻译版.xlsx
# Word 文档输出目录output_dir = rF:\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[fA{i}].valuepara1 = sheet[fB{i}].value
para2 = sheet[fC{i}].valuepara3 = sheet[fD{i}].valueif raw_file_name is None:print(f第{i}行的文件名为空,跳过该行)
continuefile_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(完成所有文档的创建.)
亲爱的读者们,感谢您花时间阅读本文。如果您对本文有任何疑问或建议,请随时联系我。我非常乐意与您交流。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。