使用openpyxl实现

只支持xlsx文件,不支持xls

import openpyxl

def read_cell(io, sheet, cell='A2'):
"""
读取单元格
:param io: Excel文件路径
:param sheet: 读取哪一张表,str, int eg: 'Sheet1' or 0
:param cell: 读取哪一个单元格
:return: value --> str
"""
excel = openpyxl.load_workbook(io)
if isinstance(sheet, str):
ws = excel[sheet]
elif isinstance(sheet, int):
name = excel.sheetnames[sheet]
ws = excel[name]
else:
raise TypeError('sheet must be int or str, not %s' % type(sheet))
val = ws[cell].value
if val:
return val
return ''

使用xlrd实现

只支持xls(version > 2.x),既支持xls又支持xlsx(version < 2.x)

import xlrd

def get_index(capital):
"""
大写字母(Excel列头)转数字
:param capital: 'A' --> 0, 'AA' --> 26
:return: int
"""
number = 0
capital = capital.upper()
for char in capital:
number = number * 26 + ord(char) - ord('A') + 1
return number - 1 def read_cell(io, sheet, cell='A1'):
"""
读取单元格
:param io: Excel文件路径
:param sheet: 读取哪一张表,str, int eg: 'Sheet1' or 0
:param cell: 读取哪一个单元格
:return: value --> str
"""
wb = xlrd.open_workbook(io)
if isinstance(sheet, str):
ws = wb.sheet_by_name(sheet)
elif isinstance(sheet, int):
ws = wb.sheet_by_index(sheet)
else:
raise TypeError('sheet must be int or str, not %s' % type(sheet))
pos_col, pos_row = re.findall('[A-Z]+|[0-9]+', cell)
col_index = get_index(pos_col)
value = ws.col_values(col_index, start_rowx=int(pos_row) - 1, end_rowx=int(pos_row))
if value:
return value[0]
return ''

最新文章

  1. css3深入了解之奇技淫巧
  2. tomcat 快速部署静态文件
  3. 获取WIFI的SSID和本机IP
  4. JQuery学习之语法
  5. Java 的 JSON 开源类库选择比较(zz)
  6. 【转】C++11中的std::function
  7. python 打包exe注意的问题
  8. java List排序方法 Comparator和Comparable
  9. Linux命令:FREE
  10. iis虚拟目录或应用程序不继承父站点的web.config配置信息
  11. [Hive] - Hive参数含义详解
  12. CSS学习(一)---使用CSS的四种方式
  13. 使用Fresco实现简单的显示一张图片
  14. [Swift]LeetCode326. 3的幂 | Power of Three
  15. 纪念L.A. Zadeh教授
  16. WPF的DataTrigger绑定自身属性
  17. Java POI 3.17导出EXCEL并下载(带进度条提示)
  18. [转]MCC(移动国家码)和 MNC(移动网络码)
  19. PAGED_CODE()
  20. Okhttp对http2的支持简单分析

热门文章

  1. 使用“宝塔一键迁移”工具,将typecho博客迁移到京东云cvm云主机
  2. 腾讯微信开源数据库PhxSQL简单部署记录
  3. 异步async await 相关知识点总结以及代码练习
  4. Java基础1-1-4—java基础语法(循环+随机数)
  5. UICC Send USSD 加密信息解析
  6. Python源文件的编码
  7. 【学习笔记】Http请求方法总结
  8. ChatGPT与人工智能
  9. 安卓逆向 ARM基础篇
  10. 代码随想录算法训练营day02 | leetcode 977/209/59