Python:复制编号格式并将其保存到 Excel 时遇到问题

问题描述 投票:0回答:1

我可以获得一个脚本来复制 Word 文档中的内容。但是,我在复制所需的编号格式(匹配目标格式)时遇到问题。我的代码如下,如果有人可以帮助我那就太好了:)

import os
from docx import Document
import openpyxl
from openpyxl.utils.dataframe import dataframe_to_rows

def read_word_doc(file_path):
    doc = Document(file_path)
    content = ""
    for paragraph in doc.paragraphs:
        content += paragraph.text + "\n"
    return content
def copy_to_excel(ws, content, row):
    for paragraph in content.split("\n"):
        ws.cell(row=row, column=1, value=paragraph)
        row+=1
    return row
def create_excel_file(folder_path, excel_file_name):
    wb = openpyxl.Workbook()
    ws = wb.active
    files = os.listdir(r"C:\folder")
    row = 1
    for file_name in files:
        if file_name.endswith(".DOCX"):
            file_path = os.path.join(folder_path, file_name)
            content = read_word_doc(file_path)
            row = copy_to_excel(ws, content, row)
wb.save(path)

尝试使用与 Windows 交互的库,但这确实有问题。尝试过 Pandas 但这也没有帮助。

python pandas dataframe openpyxl python-docx
1个回答
0
投票

Python 库

docx
openpyxl
分别非常适合读取和写入 Word 和 Excel 文件。然而,它们在处理复杂的格式(例如 Word 文档中的编号格式)时存在局限性。

docx
库不支持从Word文档中读取编号格式。它仅读取文档的文本内容。同样,
openpyxl
库不支持将编号格式写入Excel文件。它只写纯文本。

如果在将内容从 Word 文档复制到 Excel 文件时需要保留编号格式,则可能需要使用不同的方法。一种可能的方法是使用与 Microsoft Office 应用程序本身交互的库,例如 pywin32(也称为

win32com.client
)。该库允许您自动化 Office 应用程序,这意味着您可以执行需要保留复杂格式的任务。

但是,请注意,

pywin32
仅适用于 Windows,并且需要在运行脚本的计算机上安装 Office 应用程序。

很抱歉,我对 pywin32 等没有太多经验,所以我无法为您提供代码示例。但希望这会有所帮助。我会看一些关于 pywin32 的教程来了解如何做到这一点。 这可能会给你一个开始

© www.soinside.com 2019 - 2024. All rights reserved.