2013-02-07 79 views
1

我對Python仍然很陌生,所以也許我缺少一些明顯的東西。我正嘗試從Google文檔下載簡單的電子表格,保存該文件並在Excel中打開它。當我用文本文件而不是Excel文件進​​行測試運行時,它運行良好。但是,使用xls和xlsx,當excel打開新下載的文件時,它表示數據已損壞。我怎樣才能解決這個問題?下載Excel電子表格Python

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']) 
+1

當您打開文件進行寫入時,您是否嘗試過'wb'標誌? – thegrinner

+1

你可能想嘗試將'w'改爲'wb'。 'b'標誌的意思是「用二進制寫入這個文件」,而不是潛在的ASCII或其他東西。 –

+1

* facepalm *謝謝你們,修復它 – LucasS

回答

0

你寫在文件中純文本,ASCII模式。 Excel文檔不是純文本:在此假設下,您將錯誤處理內容。

要按原樣使用數據,對其格式使用零假設,請使用二進制模式。這裏:

output = open('C:\\Users\\Lucas\\Desktop\\downloaded.xlsx', 'wb') 

注意'b'標誌在最後。