我正在尝试将excel表复制到word文件中,其格式完好无损,到目前为止已找到下面提到的代码。但是这段代码在粘贴到Word时会删除Word文件中的所有其他内容。请帮忙,如何只是附加到现有的word文档而不是覆盖它?
from win32com import client
excel = client.Dispatch("Excel.Application")
word = client.Dispatch("Word.Application")
doc = word.Documents.Open("C:/word_file.docx")
book = excel.Workbooks.Open("C:/excel_file.xlsx")
sheet = book.Worksheets(1)
sheet.Range("A1:D20").Copy() # Selected the table I need to copy
doc.Content.PasteExcelTable(False, False, False)
答案 0 :(得分:0)
我并不真正了解Python,但是从您向我们展示的代码片段中进行推断,看看如何将文档的整个主体分配给Word.Range
(而不是Excel.Range)对象。然后你需要折叠 Range
,无论是它的起点还是终点 - 想象它就像按左或右箭头键将一个选项“折叠”到一个点。然后,您可以插入新内容而不会干扰现有内容。
from win32com import client
excel = client.Dispatch("Excel.Application")
word = client.Dispatch("Word.Application")
doc = word.Documents.Open("C:/word_file.docx")
book = excel.Workbooks.Open("C:/excel_file.xlsx")
sheet = book.Worksheets(1)
sheet.Range("A1:D20").Copy() # Selected the table I need to copy
wdRange = doc.Content
wdRange.Collapse(1) #start of the document, use 0 for end of the document
wdRange.PasteExcelTable(False, False, False)