我仍然是Python的新手,所以也许我错过了一些明显的东西。我正在尝试从Google文档下载简单的电子表格,保存文件,然后在Excel中打开它。当我使用文本文件而不是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'])
答案 0 :(得分:2)
你想要wb
你可以查看文档here
答案 1 :(得分:0)
您正在以纯文本ascii模式编写文件。 Excel文档不是纯文本:在此假设下,您将错误处理内容。
要按原样使用数据,对其格式进行零假设,则使用二进制模式。这里:
output = open('C:\\Users\\Lucas\\Desktop\\downloaded.xlsx', 'wb')
注意最后的'b'标志。