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