【问题标题】:Copying text from file to specified Excel column [closed]将文本从文件复制到指定的 Excel 列 [关闭]
【发布时间】:2017-07-22 06:12:13
【问题描述】:

我有一个文本文件,例如“A.txt”和一个 Excel 文件,例如“B.xlsx”。我的目标是使用 python 脚本将 A.txt 中的所有文本复制到 B.xlsx 中的指定列。例如,假设A.txt 看起来像:

Word1 5
Word2 Word3
6 Word4

然后我想将其复制到工作表“Words”中的 J 列中,这样单元格 J1 的内容为“Word1 5”,J2 的内容为“Word2 Word3”,依此类推...

那么,为了重新表述问题,我如何从指定的文本文件中复制文本并将其粘贴到指定的 Excel 列中,使得每个单元格的内容等于每一行的内容(一对一关系)?

非常感谢您的帮助!

【问题讨论】:

  • 听起来你应该看看CSV Files。它们可以像常规文档一样在 excel 中打开,但可以在文本编辑器中进行编辑。您还可以使用CSV Module 在 python 中编写 CSV 操作脚本
  • 也许你应该试试 openpyxl ?

标签: python excel python-3.x


【解决方案1】:

使用 win32com 库直接与 microsoft excel 交互,就像您在 excel 中工作一样:

import win32com.client

#Read text file lines into list
f = open("A.txt")
text_contents = f.readlines()

# Open excel and your workbook
col = 2 # column B
excel=win32com.client.Dispatch("Excel.Application")
excel.Visible=True # Note: set to false when scripting, only True for this example
wb=excel.Workbooks.Open('B.xlsx')
ws = wb.Worksheets('Sheet1')

#Write text contents to column range
ws.Range(ws.Cells(col ,1),ws.Cells(col,len(text_contents))).Value = text_contents

#Save the workbook and quit
wb.Close(True)
excel.Application.Quit() 

【讨论】:

  • 我在“wb.Save()”行出现语法错误 - 有没有我遗漏的东西(我使用的正是这段代码,只更改了 A.txt、B.xlsx 和表 1)?
  • 感谢您的更新,但我也尝试过,但再次遇到语法错误 - 是否可能由于 wb 的设置方式而无法正常工作(抱歉一直纠缠你这)?
  • @RealFL 语法错误意味着它与调用没有任何关系。仔细检查后,范围行中缺少右括号。试试修改后的代码。
  • 是的,已经解决了,非常感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-18
  • 1970-01-01
  • 2015-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多