之前的文章介绍过关于写入 Excel 表格的方法, 近期自己在做一个网站, 涉及到读取 Excel, 然后把数据存到数据库, 故把操作 Excel 的过程记录下的.
pip3 install xlrd 直接 pip3 安装.
为了演示方便, 这里的 Excel 文件直接和 python 文件放在一个目录下的, 如果是项目中, 需要注意 Excel 的文件路径.
- import xlrd
- #? 操作 Excel
- Excel?=?xlrd.open_workbook("test.xls")
- Excel.sheet_names()?#? 获取 Excel 里的工作表 sheet 名称数组
- sheet?=?Excel.sheet_by_index(0)?# 根据下标获取对应的 sheet 表
- sheet.row_values(0)?# 获取第一行的数据
- sheet.col_values(0)?# 获取第一列的数据
- sheet.nrows?# 获取总共的行数
- sheet.ncols?# 获取总共的列数
假设我们需要第二行至最后一行的数据, 就可以直接遍历获取了
- for?i?in?range(1,?sheet.nrows):
- ????row_list?=?sheet.row_values(i)?#? 每一行的数据在 row_list? 数组里
对于单个的单元格可以通过 sheet.cell(row,col)? 参数就是 row - 行, col - 列, 这个方法得到的是 cell 对象, sheet.cell(0,0).value?value 是对应的单元格内容.
还有一种特殊的情况, 合并单元格的: ??
sheet.merged_cells? 可以查看合并单元格的情况
- print(sheet.merged_cells)
- [(0,?1,?1,?3),?(4,?10,?1,?2)]
(0, 1, 1, 3)? 第一行 第 2 到 3 列合并 ? ?
(4, 10, 1, 2)? 第 5 到 10 行 第 2 列合并 ? ?
前两个参数指行范围, 后两个参数指列范围. ??
合并单元格的内容取值只有 合并的第一个单元格可以获取到值, 其他为空.
- print(sheet.cell(0,?1).value)
- print(sheet.cell(4,?1).value)
自己做的网站, 数据就是从 Excel 表格来的, 所以就需要对 Excel 表格进行操作, 把数据写到数据库里面. 我这边需要使用到的就是遍历 Excel 行去取值, 难度并不高, 唯一要注意的就是 Excel 的路径问题.
- media_root?=?os.path.join(settings.BASE_DIR,?'upload/excel/')
- word_path?=?media_root?+?"**.xls"
这篇文章介绍的比较简单, 但是用好了这些库, 对我们日常使用还是很有帮助的, 提升开发效率.
来源: http://www.bubuko.com/infodetail-2896470.html