0

下面是我的代码,我同时使用 pywin32 和 xlrd。这里的问题是我的 xls 有多个工作表,并且工作表被逐个访问并写入 word 文档,当代码写入 word 文档时,它会覆盖前一个工作表的内容。我正在寻求的是我需要一一附加我的数据。如果有人可以提供解决方案,我将不胜感激,因为我需要它来解决我正在处理的问题:

from win32com import client
import xlrd
book1 = xlrd.open_workbook("E:/excel2word/454184_Appendix E 300713 Worcester NH.xls",formatting_info=True)
excel = client.Dispatch("Excel.Application")
word = client.Dispatch("Word.Application")
doc = word.Documents.Open("E:/excel2word/Doc1.docx")
book = excel.Workbooks.Open("E:/excel2word/454184_Appendix E 300713 Worcester NH.xls")
count = book.Sheets.Count
print count
mapping ={'1':'A','2':'B','3':'C','4':'D','5':'E','6':'F','7':'G','8':'H','9':'I','10':'J','11':'K'}
for i in xrange(1,count+1):
    sh = book1.sheet_by_index(i-1)
    sheet = book.Worksheets(i)
    print sheet
    sheet.Range("A4:"+str(mapping[str(sh.ncols)])+""+str(sh.nrows)).Copy()
    print "A4:"+str(mapping[str(sh.ncols)])+""+str(sh.nrows)
    doc.Content.PasteExcelTable(False,False,False)
4

1 回答 1

0

我在这里遇到同样的问题。经过大量搜索,我终于有了解决方案.....您需要使用 Range.Collapse 和 Range.MoveEnd

range1 = doc.Range()
range1.Collapse(0)
range1.MoveEnd()
range1.PasteExcelTable(False,False,False)
于 2015-08-02T13:42:54.327 回答