Python實戰小程式——Excel操作
阿新 • • 發佈:2019-01-28
Python中的Excel操作
python中的xlrd和xlwt兩個模組可以對Excel進行各項操作。
第一步:安裝模組的方法:
1.下載一個ez_setup.py的檔案https://pypi.python.org/pypi/setuptools,用來安裝easy_install的;在Installation Instructions中右鍵ez_setup儲存到自己的電腦就行了,並複製檔案到Python的安裝目錄下D:\Python(注意一定要在Python的安裝目錄下,因為下一步會自動下載一個資料夾到這目錄下才能正常使用);
2.執行cmd,把路徑切換到Python的安裝目錄(輸入d: 回車,再輸入cd Python 回車),然後再輸入ez_setup.py 回車(如果彈出開啟方式的對話方塊,選擇Python開啟就可以了),這時,會自動下載一個資料夾到Python的目錄下,等提示finish即可關閉cmd;
3.編輯環境變數,把Python的路徑D:\Python和easy_install的路徑D:\Python\Scripts新增到path的變數值中去;
4.執行cmd,輸入easy_install xlrd,等待片刻,xlrd模組就安裝完成了,在Python中輸入import xlrd 回車,沒提示錯誤,就表示安裝成功了!
(在完成了前四步的基礎上,也可以安裝Python的其他模組,只要在第五步輸入easy_install "模組名"即可)
第二步:瞭解xlrd和xlwt基本操作語句:
1.下載一個ez_setup.py的檔案https://pypi.python.org/pypi/setuptools,用來安裝easy_install的;在Installation Instructions中右鍵ez_setup儲存到自己的電腦就行了,並複製檔案到Python的安裝目錄下D:\Python(注意一定要在Python的安裝目錄下,因為下一步會自動下載一個資料夾到這目錄下才能正常使用);
2.執行cmd,把路徑切換到Python的安裝目錄(輸入d: 回車,再輸入cd Python 回車),然後再輸入ez_setup.py 回車(如果彈出開啟方式的對話方塊,選擇Python開啟就可以了),這時,會自動下載一個資料夾到Python的目錄下,等提示finish即可關閉cmd;
3.編輯環境變數,把Python的路徑D:\Python和easy_install的路徑D:\Python\Scripts新增到path的變數值中去;
4.執行cmd,輸入easy_install xlrd,等待片刻,xlrd模組就安裝完成了,在Python中輸入import xlrd 回車,沒提示錯誤,就表示安裝成功了!
(在完成了前四步的基礎上,也可以安裝Python的其他模組,只要在第五步輸入easy_install "模組名"即可)
讀模組(xlrd):
匯入模組import xlrd
開啟excel data = xlrd.open_workbook('demo.xls') #注意這裡的workbook首字母是小寫
檢視檔案中包含sheet的名稱data.sheet_names()
得到第一個工作表,或者通過索引順序 或 工作表名稱table = data.sheets()[0]table = data.sheet_by_index(0)table = data.sheet_by_name(u'Sheet1')
獲取行數和列數(實際含有資料的) nrows = table.nrows ncols = table.ncols
獲取整行和整列的值(陣列) table.row_values(i) table.col_values(i)
寫模組(xlwt):
匯入模組import xlwt
新建一個excelMyexcel=xlwt.Workbook#注意這裡的Workbook首字母是大寫!!!
建立一個新的表單worksheet=workbook.add_sheet("demo")
往單元格寫入內容worksheet.write(a,b,value)
儲存excelMyexcel.save('Student')
實戰小程式:
將
{
"1":["張三",150,120,100],
"2":["李四",90,99,95],
"3":["王五",60,66,68]
}
寫入excel如下所示:
樣例程式碼:
#coding=utf-8
import xlwt
Myexcel=xlwt.Workbook()
table=Myexcel.add_sheet('Students')
data = {
'1':[u'張三',150,120,100],
'2':[u'李四',90,99,95],
'3':[u'王五',60,66,68]
}
for key in data.keys():
table.write(int(key)-1,0,int(key))
for i in range(0,len(data[key])):
table.write(int(key)-1,i+1,data[key][i])
Myexcel.save('Students.xls')