python excel 操作
生活随笔
收集整理的這篇文章主要介紹了
python excel 操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
在工作中經常碰到要導出excel或者將excel的數據導入數據庫,在用python處理excel的時候常用到xlrd和xlwt兩個庫來對excel進行讀取數據和寫入數據,讀取如下:
import xlrd workbook = xlrd.open_workbook(r'test.xlsx') print workbook.sheet_names() sheet2_name= workbook.sheet_names()[0] print sheet2_name sheet2 = workbook.sheet_by_name('Sheet1') print sheet2.name,sheet2.nrows,sheet2.ncols rows = sheet2.row_values(3) print rows nrows = sheet2.nrows print nrows for n in xrange(1,nrows): ??cell_value1 = sheet2.row_values(n) ?print cell_value1print cell_value1[0]print cell_value1[1]上述代碼包含讀取excel各項數據,獲取用了多少行,通過for循環來獲取每行,每個單元格的數據,如果只是單純的獲取一個單元格的數據,可以用這行 sheet2.cell(x,y).value (x為行號,y為列號) 直接獲取。
導出excel有多種方法,可以通過xlwt或者xlrd來將數據寫入,如下:
import xlwt style1 = xlwt.easyxf(num_format_str='D-MMM-YY') wb = xlwt.Workbook() ws = wb.add_sheet('adTest') ws.write(0, 0, 1234.56) ws.write(1, 0, '你好'.encode('GB18030') ws.write(2, 0, 1)也可以通過csv庫來直接導出,如下(可以用循環來進行多行的數據插入):
response = HttpResponse(mimetype="text/csv",content_type="text/csv") ? name = time.strftime('%Y%m%d%H%M%S') response['Content-Disposition'] = 'attachment; filename=%s.csv'%name ? writer = csv.writer(response) ? writer.writerow([u'序號'.encode('GB18030'),'表1'.encode('GB18030'),u'表2'.encode('GB18030')])? writer.writerow([xh,'測試'.encode('GB18030'),'測試'.encode('GB18030'))? return response除了上面直接按行寫到excel的,還可以將數據按照顯示要求排列好,最后返回式時設置response.headers["Content-Disposition"] = "attachment; filename=data.csv"來返回csv。在導出中文時,如果直接導出中文會是亂碼,在測試了幾種編碼后覺得GB18030編碼對于excel導出中文適應性很好。
轉載于:https://my.oschina.net/u/585729/blog/1558030
總結
以上是生活随笔為你收集整理的python excel 操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2017甲骨文JavaOne参会感想
- 下一篇: 《Enterprise Library深