Python 3.4版本對於Excel表的操作
阿新 • • 發佈:2019-01-05
我們都知道在JAVA裡,我們可以使用POI來操作Excel檔案,在POI的API裡有HSSFWorkbook支援03版的excel的讀寫,有XSSFWorkbook是針對07以後的excel檔案的讀寫,那麼在python3.x(散仙使用的版本是python3.4)裡,我們應該如何操作excel。
首先在python3.4裡,我們可以使用新的python類庫,來支援3.x之後的讀寫excel
針對 03版excel(xls結尾的),我們可以使用xlrd讀,xlwt包來寫
針對 07版excel(xlsx結尾的),我們可以使用openpyxl來操作讀寫excel
下載完擴充套件的包庫之後,直接解壓某個目錄,然後執行命令進行安裝包系統的python類庫裡:
核心程式碼,如下所示:
最後,分享三個格式數字和日期,以及隨機數生成3個小知識點
結果如下:
首先在python3.4裡,我們可以使用新的python類庫,來支援3.x之後的讀寫excel
針對 03版excel(xls結尾的),我們可以使用xlrd讀,xlwt包來寫
針對 07版excel(xlsx結尾的),我們可以使用openpyxl來操作讀寫excel
下載完擴充套件的包庫之後,直接解壓某個目錄,然後執行命令進行安裝包系統的python類庫裡:
python setup.py install
核心程式碼,如下所示:
#讀取excel使用(支援03) import xlrd #寫入excel使用(支援03) import xlwt3 #讀取execel使用(支援07) from openpyxl import Workbook #寫入excel使用(支援07) from openpyxl import load_workbook def showexcel(path): workbook=xlrd.open_workbook(path) sheets=workbook.sheet_names(); #多個sheet時,採用下面的寫法列印 #for sname in sheets: #print(sname) worksheet=workbook.sheet_by_name(sheets[0]) #nrows=worksheet.nrows #nclows=worksheet.ncols for i in range(0,worksheet.nrows): row=worksheet.row(i) for j in range(0,worksheet.ncols): print(worksheet.cell_value(i,j),"\t",end="") print() def writeexcel03(path): wb=xlwt3.Workbook() sheet=wb.add_sheet("xlwt3資料測試表") value = [["名稱", "hadoop程式設計實戰", "hbase程式設計實戰", "lucene程式設計實戰"], ["價格", "52.3", "45", "36"], ["出版社", "機械工業出版社", "人民郵電出版社", "華夏人民出版社"], ["中文版式", "中", "英", "英"]] for i in range(0,4): for j in range(0,len(value[i])): sheet.write(i,j,value[i][j]) wb.save(path) print("寫入資料成功!") def writeexcel07(path): wb=Workbook() #sheet=wb.add_sheet("xlwt3資料測試表") sheet=wb.create_sheet(0,"xlwt3資料測試表") value = [["名稱", "hadoop程式設計實戰", "hbase程式設計實戰", "lucene程式設計實戰"], ["價格", "52.3", "45", "36"], ["出版社", "機械工業出版社", "人民郵電出版社", "華夏人民出版社"], ["中文版式", "中", "英", "英"]] #for i in range(0,4): #for j in range(0,len(value[i])): #sheet.write(i,j,value[i][j]) #sheet.append(value[i]) sheet.cell(row = 1,column= 2).value="溫度" wb.save(path) print("寫入資料成功!") def read07excel(path): wb2=load_workbook(path) #print(wb2.get_sheet_names()) ws=wb2.get_sheet_by_name("詳單一") row=ws.get_highest_row() col=ws.get_highest_column() print("列數: ",ws.get_highest_column()) print("行數: ",ws.get_highest_row()) for i in range(0,row): for j in range(0,col): print(ws.rows[i][j].value,"\t\t",end="") print() #print(ws.rows[0][0].value) #print(ws.rows[1][0].value) #print(ws.rows[0][1].value) #excelpath=r"D://名稱.xlsx" #writepath=r"D://書籍明細07.xlsx" #writeexcel03(writepath) #writeexcel07(writepath) read07path="D://名稱.xlsx"; read03path=r"E:\同義詞詞庫.xls"; #read07excel(read07path) #read07excel(read03path) #showexcel(excelpath); showexcel(read03path);
最後,分享三個格式數字和日期,以及隨機數生成3個小知識點
#浮點數格式化成百分比
pp="{:.1%}".format(0.2356)
print(pp)
#格式化日期
import datetime
s=(2014,12,11,0,0,0)
d="%02d-%02d-%02d" % s[:3]
print(d)
#列印隨機數
import random
#浮點數隨機數
f=random.uniform(1.0,100)
#整數範圍隨機數
f1=random.randint(1,23)
print(f1)
print(f)
結果如下:
D:\python\python.exe D:/pythonide/pythonprojectworkspace/tnssolve/f.py 23.6% 2014-12-11 17 84.57222433948785 Process finished with exit code 0