我想将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中做到这一点?
我想将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中做到这一点?
如果在这里一个Python的问题,答案很可能采用csv module :-)
如果它是一个Excel的问题,有一个“制表符分隔文本(.txt)”和另存为选项另一个用于“逗号分隔值(* .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
你的问题问如何“保存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行的文件,那么你将需要为目标文件名更好的方案。