python处理excel文件-python读取excel文件

# 最近写项目需要,通过读取excel文件导入数据至数据库

第一种方式:xlrd方式

安装模块:

pip install xlrd

导入模块:

import xlrd

拿到操作excel句柄,读取excel文件:

workbook = xlrd.open_workbook(filepath) # 硬盘读取

workbook = xlrd.open_workbook(file_contents=file.read()) # excel数据传入,excel数据不保存在本地时候使用

拿到sheet句柄:

(1) 通过索引获取sheet句柄(没有名称的用这个,一般我就一个sheet)

sheet = workbook.sheet_by_index(0)

(2) 通过sheet名获取sheet句柄

sheet = workbook.sheet_by_name(sheetname)

sheet指的是这个:

1614173-20190913215859979-1082480093.png

获取第一行数据:

rows = sheet.row_values(0)

print(rows)

获取总行数:

print(sheet.nrows)

组合起来的写法:

importxlrddefread_excel_data(filepath):

workbook=xlrd.open_workbook(filepath)

sheet=workbook.sheet_by_index(0)for index in range(1, sheet.nrows):

row_value=sheet.row_values(index)print(row_value)if __name__ == '__main__':

read_excel_data('test.xlsx')

前端文件形式发送,后端内存读取excel数据:

defanswer_upload(req, kf_type):importxlrd

file= req.FILES.get('file')

workbook= xlrd.open_workbook(file_contents=file.read())

sheet=workbook.sheet_by_index(0)

objs=[]for index in range(3, sheet.nrows):

row_value=sheet.row_values(index)

obj= Answer(keyword_name=row_value[0], answer=row_value[1], kf_type=kf_type)

objs.append(obj)

Answer.objects.bulk_create(objs)

res= {"status": 0, "message": "%s上传成功!" %file.name}return HttpResponse(json.dumps(res))

# 重点是xlrd.open_workbook得file_contents属性

第二种方式:pandas

安装模块:

pip install pandas -i

11517802.htmlhttps://pypi.tuna.tsinghua.edu.cn/simple

导入模块:

import pandas as pd

读取文件:

data = pd.read_excel(io=file_path, sheet_index=0, header=0)

# io 表示excel文件路径

# sheet_index 表示读取第几个sheet,sheet_name可指定名称,默认0

# header 表示表头最后是第几行,读取数据掠过表头数据用,默认为0第一行掠过去

查看行数:

len(data)

读取数据:

data.values[0] # 表示拿出第一行数据,不包含表头

命令行可视化表格:

data.head()

1614173-20200409210524306-175143148.png

例子写法:

importpandas as pd

file_path= './test.xlsx'data= pd.read_excel(io=file_path, sheet_index=0, header=0)for ele in data.values: #data.values二维数组形式

print(ele[0], ele[1], ele[2])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值