用Python下载Excel电子表格
我对Python还比较陌生,可能有些明显的地方我没注意到。我想从Google文档下载一个简单的电子表格,保存这个文件,然后在Excel中打开它。当我用文本文件做测试时,一切都很顺利。但是,当我使用xls和xlsx格式时,Excel打开新下载的文件时却提示数据损坏。我该怎么解决这个问题呢?
import urllib2
print "Downloading..."
myfile = urllib2.urlopen("https://docs.google.com/spreadsheet/pub?key=0AoJYUIVnE85odGZxVHkybGxYRXF1TFpuQXdqZlJwNXc&output=xls")
output = open('C:\\Users\\Lucas\\Desktop\\downloaded.xlsx', 'w')
output.write(myfile.read())
output.close()
print "Done"
import subprocess
subprocess.call(['C:\\Program Files (x86)\\Microsoft Office\\Office14\\EXCEL.exe', 'C:\\Users\\Lucas\\Desktop\\downloaded.xlsx'])
2 个回答
0
你现在是以普通文本的方式在写文件,使用的是ascii模式。但是Excel文档可不是普通文本。如果你这样做,就会搞错里面的内容。
如果你想直接使用数据,不对它的格式做任何假设,就应该用二进制模式。这里是:
output = open('C:\\Users\\Lucas\\Desktop\\downloaded.xlsx', 'wb')
注意最后的'b'标志。
2
你可能想把它设置为 wb
,你可以在这里查看文档 这里。