1. 程式人生 > >python使用xlsxwriter打造excel週報日周的統計圖表

python使用xlsxwriter打造excel週報日周的統計圖表

http://xiaorui.cc/2014/12/14/python%E4%BD%BF%E7%94%A8xlsxwriter%E6%89%93%E9%80%A0excel%E5%91%A8%E6%8A%A5%E6%97%A5%E5%91%A8%E7%9A%84%E7%BB%9F%E8%AE%A1%E5%9B%BE%E8%A1%A8/

【整理】Python中,新增寫入資料到已經存在的Excel的xls檔案,即開啟excel檔案,寫入新資料

http://www.crifan.com/python_append_new_data_into_existing_excel_xls_file/

see: http://www.cnblogs.com/sunada2005/p/3193300.html

一、可使用的第三方庫

python中處理excel表格,常用的庫有xlrd(讀excel)表、xlwt(寫excel)表、openpyxl(可讀寫excel表)等。xlrd讀資料較大的excel表時效率高於openpyxl,所以我在寫指令碼時就採用了xlrd和xlwt這兩個庫。介紹及下載地址為:http://www.python-excel.org/ 這些庫檔案都沒有提供修改現有excel表格內容的功能。一般只能將原excel中的內容讀出、做完處理後,再寫入一個新的excel檔案。

二、常見問題

使用python處理excel表格時,發現兩個個比較難纏的問題:unicode編碼和excel中記錄的時間。

因為python的預設字元編碼都為unicode,所以列印從excel中讀出的中文或讀取中文名的excel表或sheet時,程式提示錯誤UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)。這是由於在windows中,中文使用了gb2312編碼方式,python將其當作unicode和ascii來解碼都不正確才報出的錯誤。使用VAR.encode('gb2312')即可解決列印中文的問題。(很奇怪,有的時候雖然能打印出結果,但顯示的不是中文,而是一堆編碼。)若要從中文檔名的excel表中讀取資料,可在檔名前加‘u’表示將該中文檔名採用unicode編碼。

有excel中,時間和日期都使用浮點數表示。可看到,當‘2013年3月20日’所在單元格使用‘常規’格式表示後,內容變為‘41353’;當其單元格格式改變為日期後,內容又變為了‘2013年3月20日’。而使用xlrd讀出excel中的日期和時間後,得到是的一個浮點數。所以當向excel中寫入的日期和時間為一個浮點數也不要緊,只需將表格的表示方式改為日期和時間,即可得到正常的表示方式。excel中,用浮點數1表示1899年12月31日。


http://www.cnblogs.com/snow-backup/p/4021554.html