利用Python讀取EXCEL 檔案
阿新 • • 發佈:2019-01-04
小編今天從專案需求來給大家介紹讀取EXCEL的作用!
由於專案要進行重新架構和設計開發,專案本身的資料庫中的資料需要遷移,但是公司內部的一些新增資料由於專案的某一個模組無法通過執行API介面來處理資料庫資料,這個時候,就需要給公司各個部門下發統一格式的EXCEL表格,將近期的資料進行統計。那麼,相對大量的EXCEL要向資料庫中手動新增,過於耗時。介於方便和時間效率的考慮,利用PYTHON進行讀取excel, 並儲存到資料庫中,這樣可以節省大量的時間,同時,也間接的保護了資料庫的資料。相對而言,公司的專案比較注重資料的保護,涉密,對資料庫的保護很重要,我們要對他的操作十分小心。
下面是一個操作EXCEL,自己實現的程式碼:
import openpyxl import time from flask import Flask from utils.oa_database import SQLALchemy class Config DEBUG = True SQLALCHEMY_DATABASE_URI = 'oracle://使用者名稱:密碼@ip地址/資料庫名' SQLALCHEMY_TRACK_MODIFICATIONS = FALSE class ProjectManagement(object): def __init__(self, path): # 初始化app self.app = Flask(__name__) self.app.config.from_object(Config) self.db = SQLALchemy(self.app) # 開啟EXCEL表格 path 是檔案的絕對路徑 self.wb = openpyxl.load_workbook(path) # 操作單元格 Sheet1就是第一個單元格,如果不傳, 預設第一個 self.sheet = self.wb.get_sheet_by_name("Sheet1") small_list = list() new_list = list() write_list() last = list() finish_lish() # B4就是某一個cell單元格 獲取單元格為B4的值 self.data = self.sheet["B4"].value for i in range(10, self.sheet.max_raw//獲取當前表格的最大行(無資料)): for j in range(0, 6): # 獲取10-100行, 0-6列的資料 data = self.sheet.cell(row=i, column=j).value print(data) def run(self): # 操作資料庫例項方法 pass if __name__ == '__main__': project_management("絕對路徑/檔名.xlsx")
一、用xlrd和xlwt讀寫excel
首先下載安裝xlrd和xlwt這兩個庫。
1、開啟excel
readbook = xlrd.open_workbook(r'\test\canying.xlsx')
2、獲取讀入的檔案的sheet
sheet = readbook.sheet_by_index(1)#索引的方式,從0開始
sheet = readbook.sheet_by_name('sheet2')#名字的方式
3、獲取sheet的最大行數和列數
nrows = sheet.nrows#行 ncols = sheet.ncols#列
4、獲取某個單元格的值
lng = table.cell(i,3).value#獲取i行3列的表格值
lat = table.cell(i,4).value#獲取i行4列的表格值
5、開啟將寫的表並新增sheet
writebook = xlwt.Workbook()#開啟一個excel
sheet = writebook.add_sheet('test')#在開啟的excel中新增一個sheet
6、將資料寫入excel
sheet.write(i,0,result[0])#寫入excel,i行0列
sheet.write(i,1,result[1])
7、儲存
writebook.save('answer.xls')#一定要記得儲存
二、使用openpyxl庫讀寫excel
xlrd和xlwt處理的是xls檔案,單個sheet最大行數是65535,如果有更大需要的,建議使用openpyxl函式,最大行數達到1048576。
如果資料量超過65535就會遇到:ValueError: row index was 65536, not allowed by .xls format
1、開啟excel
2、獲取開啟的excel的sheet內容
3、獲取sheet的最大行數和列數
4、獲取某個單元格的值
print(ws.cell(1,1).value)
5、開啟將寫的表並新增sheet
6、儲存