Python讀取Excel內容

2021-09-10 10:04:45 字數 3100 閱讀 3066

xlsxwrite、openpyxl、xlrd&xlwt、microsoft excel,其差異大致如下:

此次專案有個需求是前端頁面上傳乙份excel檔案,後端這邊將其內容讀取到,並存入資料庫中

大概有兩個點,接收上傳的檔案,讀取excel內容,存入資料庫中

2.1flask有個處理接收到的檔案的方法,request.files 方法,即可獲取到前端上傳過來的檔案,讀取excel使用的是xlsxwriter==1.1.0

pip install xlsxwrite 即可

具體的**實現如下

# 匯入excel資料

@blue_pro.route('/importexcel', methods=['post'])

def importexcel():

if request.files.has_key('file'):

file = request.files['file']

allow_file = '.' in file.filename and file.filename.rsplit('.', 1)[1] in ['xlsx']

if file and allow_file:

# 解析檔案內容

workbook = load_workbook(file)

sheet = workbook.active

max_row = sheet.max_row

# 驗證合同號是否重複

contid_list = db.session.query(projectunique.contractid).all()

clo_id_list =

for col in sheet.iter_cols(min_row=2, max_row=max_row, min_col=4, max_col=4):

for cell in col:

# 求交集,已存在的合同號

exist_list = list(set(clo_id_list).intersection(set(contid_list)))

if exist_list:

# 合同號存在,不處理

existids_list = map(lambda x: x[0], exist_list)

return resp_json(402, u'匯入失敗,合同號已存在', existids_list, none, 1)

else:

# 處理資料

for rows in range(max_row - 1):

row_info_list =

for row in list(sheet.rows)[1 + rows]:

del row_info_list[0]

# 日期處理

start_time = none

end_time = none

if row_info_list[3]:

try:

row_info_list[3] = str(row_info_list[3])

start_time = row_info_list[3].split('/')[0]

end_time = row_info_list[3].split('/')[1]

start_time = datetime.strptime(start_time, '%y-%m-%d').date()

end_time = datetime.strptime(end_time, '%y-%m-%d').date()

except:

return resp_json(402, u'日期時間不符', none, none, 1)

if row_info_list[5]:

try:

row_info_list[5] = row_info_list[5] * 10000

except:

return resp_json(402, u'預算金額不符', none, none, 1)

if row_info_list[6]:

try:

row_info_list[6] = row_info_list[6] * 10000

except:

return resp_json(402, u'採購金額不符', none, none, 1)

del row_info_list[3]

# 專案資訊表新增

pinfo_obj = projectinfo()

pinfo_obj.read_excel(row_info_list)

db.session.add(pinfo_obj)

try:

db.session.commit()

except:

db.session.rollback()

return resp_json(501, u'資訊處理失敗', none, none, 1)

# 2.專案唯一表

punique_obj = projectunique(contractid=row_info_list[2], proinfoid=pinfo_obj.id)

db.session.add(punique_obj)

try:

db.session.commit()

except:

db.session.rollback()

return resp_json(501, u'資訊新增失敗', none, none, 1)

return resp_json(200, u'資料處理成功,已入庫', none, none, 0)

else:

return resp_json(401, u'上傳失敗,檔名字尾不符', none, none, 1)

else:

return resp_json(400, u'上傳失敗', none, none, 1)

python讀取excel的內容

這次看到別人用別的語言抓取excel中的內容,自己也試了一下,昨晚確實遇到了不少問題,首先就是很糟糕,讓人很奔潰的編碼問題,這也是python中的乙個難點吧,目前有很多的編碼方式,gbk,utf 8,gb2322,在python中提到unicode,一般指的是unicode物件,例如 哈哈 的uni...

python 讀取excel內容並輸出

讀取excel內容並用print輸出。import pandas as pd df pd.read excel 測試.xlsx 這個會直接預設讀取到這個excel的第乙個表單 data df.head 預設讀取前5行的資料 print 獲取到所有的值 n format data 格式化輸出 方法二 ...

利用python讀取Excel檔案內容

今天,跟大家談一下用python計算excel中的資料 我們先學習讀取excel中的資料 首先我們要安裝xlrd庫,在命令提示符 快捷鍵win r 中輸入 pip install xlrd首先呢,當然要先有乙個excel啦,如下 我們先仔細觀察這個excel,裡面有2018 2017 2016的月收...