修改代码: # 保存文档 doc.save(r'G:\工作文件\产业办\2022年\产业帮扶\产业奖补\3.经营主体奖补\县级业务\15.绩效资料\实施方案) # 将文档保存为指定的文件名 # 重命名并另存文件 os.rename(filename, row[0] + '.docx') # 将文件名改为第一个单元格中的内容加上.docx,并保存。

时间: 2023-06-30 10:07:30 浏览: 35
修改后的代码如下: ```python # 保存文档 doc.save(r'G:\工作文件\产业办\2022年\产业帮扶\产业奖补\3.经营主体奖补\县级业务\15.绩效资料\实施方案.docx') # 将文档保存为指定的文件名 import os os.rename(r'G:\工作文件\产业办\2022年\产业帮扶\产业奖补\3.经营主体奖补\县级业务\15.绩效资料\实施方案.docx', row[0] + '.docx') # 将文件名改为第一个单元格中的内容加上.docx,并保存。 ``` 注意,第一行保存文档的代码中,文件名已经包含了要保存的路径和文件名,所以在重命名文件时不需要再加上路径信息。
相关问题

优化代码:Traceback (most recent call last): File "G:\工作文件\产业办\2022年\产业帮扶\产业奖补\3.经营主体奖补\县级业务\15.绩效资料\读取Excel数据写入Word.py", line 53, in <module> os.rename(result_folder, row[0] + '.docx') # 将文件名改为第一个单元格中的内容加上.docx,并保存。 FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。: './result' -> '紫阳县2023年经营主体茶叶产业基地建设奖补实施方案.docx' 进程已结束,退出代码1

可以在重命名之前先判断文件是否存在,如果存在则先删除再重命名。修改代码如下: ```python import os import openpyxl from docx import Document # 读取Excel文件 wb = openpyxl.load_workbook('data.xlsx') ws = wb.active # 遍历Excel表格 for row in ws.iter_rows(min_row=2, values_only=True): # 读取模板文件 doc = Document('template.docx') # 替换文本 for p in doc.paragraphs: for r in p.runs: text = r.text.replace('{{company}}', row[0]) r.text = text # 保存文件 result_folder = './result' if not os.path.exists(result_folder): os.makedirs(result_folder) result_path = os.path.join(result_folder, 'temp.docx') doc.save(result_path) # 重命名文件 new_filename = row[0] + '.docx' new_filepath = os.path.join(result_folder, new_filename) if os.path.exists(new_filepath): os.remove(new_filepath) os.rename(result_path, new_filepath) ```

python代码:打开“1.docx”文档,对其中含有“所”的文字及前两个文字加粗

以下是Python代码实现: ```python import docx # 打开文档 doc = docx.Document('1.docx') # 遍历文档中的段落 for para in doc.paragraphs: # 遍历段落中的run for run in para.runs: # 判断是否含有“所”的文字 if '所' in run.text: # 将前两个文字加粗 if len(run.text) >= 2: run.text = run.text[:2] + run.text[2:].replace('所', '\u001b[1m所\u001b[0m', 1) else: run.text = run.text.replace('所', '\u001b[1m所\u001b[0m', 1) # 保存文档 doc.save('1.docx') ``` 该代码使用Python的docx模块打开指定的Word文档,遍历文档中的段落和run,并判断是否含有“所”的文字。如果含有,则将前两个文字加粗,并将其余部分中的第一个“所”加粗。最后保存修改后的文档。注意,加粗的效果在命令行中可能无法正确显示,但在Word中能够正确显示。

相关推荐

以下是使用Spire.Doc.Free生成doc文件并添加1~3级目录的Java代码示例: java import com.spire.doc.*; import com.spire.doc.documents.*; import com.spire.doc.fields.*; public class GenerateDocWithTOC { public static void main(String[] args) { // 创建一个新的Word文档 Document doc = new Document(); // 添加标题 Paragraph title = doc.addSection().addParagraph(); TextRange titleText = title.appendText("这是一个示例文档"); titleText.getCharacterFormat().setBold(true); titleText.getCharacterFormat().setTextSize(18f); titleText.getCharacterFormat().setTextColor(Color.BLUE); title.getFormat().setHorizontalAlignment(HorizontalAlignment.Center); // 添加正文内容 Section section = doc.addSection(); Paragraph para1 = section.addParagraph(); TextRange text1 = para1.appendText("这是第一段落"); Paragraph para2 = section.addParagraph(); TextRange text2 = para2.appendText("这是第二段落"); Paragraph para3 = section.addParagraph(); TextRange text3 = para3.appendText("这是第三段落"); // 添加目录 Paragraph tocTitle = doc.addParagraph(); TextRange tocTitleText = tocTitle.appendText("目录"); tocTitleText.getCharacterFormat().setBold(true); tocTitleText.getCharacterFormat().setTextSize(14f); tocTitleText.getCharacterFormat().setTextColor(Color.BLACK); // 设置目录样式 doc.getStyles().get("Normal").getParagraphFormat().setStyleName("TOC 1"); doc.getStyles().get("Heading 1").getParagraphFormat().setStyleName("TOC 2"); doc.getStyles().get("Heading 2").getParagraphFormat().setStyleName("TOC 3"); // 添加目录域 Paragraph toc = doc.addParagraph(); Field tocField = toc.appendField("TOC", FieldType.Field_Toc); TocFieldSettings tocSettings = new TocFieldSettings(); tocSettings.setIncludePageNumbers(true); tocSettings.setLowerHeadingLevel(1); tocSettings.setUpperHeadingLevel(3); tocField.setFieldSettings(tocSettings); // 保存文档 doc.saveToFile("GenerateDocWithTOC.docx", FileFormat.Docx); } } 这个示例代码将会创建一个包含标题、正文内容和目录的Word文档,并将1~3级标题自动添加到目录中。你可以根据需要自定义样式和设置。注意,Spire.Doc.Free只支持doc和docx格式,因此在保存文档时需要指定文件格式。
使用-iceblue:spire.doc.free:5.2.0获取指定内容在doc文档的第几页,可以按照以下步骤进行操作: 1. 打开需要处理的doc文件 java Document document = new Document(); document.loadFromFile("test.doc"); 2. 获取doc文件中的所有段落 java SectionCollection sections = document.getSections(); ParagraphCollection paragraphs = sections.get(0).getParagraphs(); 3. 遍历所有段落,查找需要查找的内容所在的段落,记录下该段落的索引 java int pageIndex = -1; for (int i = 0; i < paragraphs.getCount(); i++) { Paragraph paragraph = paragraphs.get(i); String text = paragraph.getText(); if (text.contains("需要查找的内容")) { pageIndex = i; break; } } 4. 如果找到了需要查找的内容所在的段落,则计算该段落所在的页面数 java if (pageIndex != -1) { DocumentObject obj = paragraphs.get(pageIndex); int page = document.getPageNumber(obj); System.out.println("需要查找的内容所在的页数为:" + page); } 完整的代码如下: java import com.spire.doc.*; public class GetPageIndex { public static void main(String[] args) { //加载文档 Document document = new Document(); document.loadFromFile("test.doc"); //获取第一个节的所有段落 SectionCollection sections = document.getSections(); ParagraphCollection paragraphs = sections.get(0).getParagraphs(); //查找内容所在的段落 int pageIndex = -1; for (int i = 0; i < paragraphs.getCount(); i++) { Paragraph paragraph = paragraphs.get(i); String text = paragraph.getText(); if (text.contains("需要查找的内容")) { pageIndex = i; break; } } //计算内容所在的页数 if (pageIndex != -1) { DocumentObject obj = paragraphs.get(pageIndex); int page = document.getPageNumber(obj); System.out.println("需要查找的内容所在的页数为:" + page); } } } 注意:以上代码使用的是Spire.Doc Free版本,如果使用的是Spire.Doc付费版本,则需要引入对应的jar包,并且需要授权才能使用。

最新推荐

大数据产业链构成分析.doc

大致可分为数据标准与规范、数据安全、数据采集、数据存储与管理、数据分析与挖掘、数据运维及数据应用几个环节,覆盖了数据从产生到应用的整个生命周期。

投标文件 需求文档 建设方案等文档模板.doc

本文档模板适用于投标文件、需求文档、项目建设方案等,下载后可以根据实际需求修改文档结构,标题编号、页面序号等已调整好,建议不要修改直接使用

2022年日历表A4纸完美打印版.doc

2022年日历表A4纸完美打印文档,word版本可编辑,无编辑需求的用户可直接打印

最新ISO45001:2018全套程序文件汇编(职业健康安全管理体系).doc (1).doc

公司建立,运行和保持ISO45001:2018职业健康安全管理体系要求的保持文件的编写的参考。确保公司的职业健康安全管理按文件化规定实施。

附五:需求变更控制报告.doc

软件项目的需求变更说明,内容包括: 申请变更的 需求文档 输入名称,版本,日期等信息 变更的内容 及其理由 用户项目负责人签字: 等

基于单片机温度控制系统设计--大学毕业论文.doc

基于单片机温度控制系统设计--大学毕业论文.doc

"REGISTOR:SSD内部非结构化数据处理平台"

REGISTOR:SSD存储裴舒怡,杨静,杨青,罗德岛大学,深圳市大普微电子有限公司。公司本文介绍了一个用于在存储器内部进行规则表达的平台REGISTOR。Registor的主要思想是在存储大型数据集的存储中加速正则表达式(regex)搜索,消除I/O瓶颈问题。在闪存SSD内部设计并增强了一个用于regex搜索的特殊硬件引擎,该引擎在从NAND闪存到主机的数据传输期间动态处理数据为了使regex搜索的速度与现代SSD的内部总线速度相匹配,在Registor硬件中设计了一种深度流水线结构,该结构由文件语义提取器、匹配候选查找器、regex匹配单元(REMU)和结果组织器组成。此外,流水线的每个阶段使得可能使用最大等位性。为了使Registor易于被高级应用程序使用,我们在Linux中开发了一组API和库,允许Registor通过有效地将单独的数据块重组为文件来处理SSD中的文件Registor的工作原

如何使用Promise.all()方法?

Promise.all()方法可以将多个Promise实例包装成一个新的Promise实例,当所有的Promise实例都成功时,返回的是一个结果数组,当其中一个Promise实例失败时,返回的是该Promise实例的错误信息。使用Promise.all()方法可以方便地处理多个异步操作的结果。 以下是使用Promise.all()方法的示例代码: ```javascript const promise1 = Promise.resolve(1); const promise2 = Promise.resolve(2); const promise3 = Promise.resolve(3)

android studio设置文档

android studio默认设置文档

海量3D模型的自适应传输

为了获得的目的图卢兹大学博士学位发布人:图卢兹国立理工学院(图卢兹INP)学科或专业:计算机与电信提交人和支持人:M. 托马斯·福吉奥尼2019年11月29日星期五标题:海量3D模型的自适应传输博士学校:图卢兹数学、计算机科学、电信(MITT)研究单位:图卢兹计算机科学研究所(IRIT)论文主任:M. 文森特·查维拉特M.阿克塞尔·卡里尔报告员:M. GWendal Simon,大西洋IMTSIDONIE CHRISTOPHE女士,国家地理研究所评审团成员:M. MAARTEN WIJNANTS,哈塞尔大学,校长M. AXEL CARLIER,图卢兹INP,成员M. GILLES GESQUIERE,里昂第二大学,成员Géraldine Morin女士,图卢兹INP,成员M. VINCENT CHARVILLAT,图卢兹INP,成员M. Wei Tsang Ooi,新加坡国立大学,研究员基于HTTP的动态自适应3D流媒体2019年11月29日星期五,图卢兹INP授予图卢兹大学博士学位,由ThomasForgione发表并答辩Gilles Gesquière�