将Excel文件的每一列保存在单独的文本文件中

时间:2011-11-30 07:48:51

标签: python excel

我想将excel文件的每一列保存在单独的文本文件中。

例如......

ID, contents
1, aaa is bla bla bla
2, ccc is bla bla bla

我想将1 aaa is bla bla bla保存在a.txt中 并将2 ccc is blablabla保存在b.txt

我怎样才能在Python中执行此操作?

2 个答案:

答案 0 :(得分:1)

如果这里有Python问题,答案可能会使用csv module: - )

如果是Excel问题,则“制表符分隔文本(.txt)”有一个SaveAs选项,“逗号分隔值(* .csv)”有另一个选项。以下是分步教程:http://www.howtogeek.com/79991/convert-an-excel-spreadsheet-to-a-tab-delimited-text-file/

如果要从Python控制Excel并在Windows上,可以使用Win32API的COM接口。这是一个简单的例子:http://users.rcn.com/python/download/quoter.pyw

答案 1 :(得分:0)

您的问题询问如何“保存Excel文件的每一列”,但从您的示例中,您似乎确实希望将每行保存在单独的文件中。 Raymond已经建议使用COM接口。这里有一些对我有用的代码:

import win32com.client

STARTROW = 2
ENDROW = 3

xl = win32com.client.Dispatch("Excel.Application")
xl.DisplayAlerts = False

workbook = xl.Workbooks.Open("C:\FULL\PATH\TO\EXCEL\FILE\HERE.xls")
sheet = workbook.ActiveSheet

letter = 'a'
for row in xrange(STARTROW, ENDROW + 1):
    dest = open(letter + ".txt", 'w')
    dest.write("{0},{1}".format(sheet.Cells(row, 1).Text, sheet.Cells(row, 2).Text))
    dest.close()
    letter = chr(ord(letter)+1)

xl.Quit()

如果文件中有超过26行,那么您将需要一个更好的目标文件名方案。