python-3.x - 如何避免使用 Openpyxl 为读取每一行制作一个平面列表?
问题描述
我正在使用openpyxl
,有人可以告诉我在阅读下一行时如何制作新列表吗?
我不想有平面列表。
代码:
import openpyxl
excel_filename = "sample.xlsx"
wb = openpyxl.load_workbook(excel_filename, data_only=True)
my_sheet_name = "Sheet1"
ws = wb[my_sheet_name]
print("File: {}".format(excel_filename))
data=[]
for j in range(1, ws.max_row+1 ):
for i in range(1,ws.max_column+1):
ihidden = ws.row_dimensions[j].hidden
svalue = ws.cell(column=i,row=j).value
if ihidden == True:
shidden = "HIDDEN"
else:
shidden = "VISIBLE"
data.append(svalue)
print(data)
示例.xlsx:
输出:
File: sample.xlsx
[1231231, None, None, 3123, 123123, None, 123, 21322, None]
我希望它可以是:
File: sample.xlsx
[[1231231, None, None],[3123, 123123, None],[123, 21322, None]]
解决方案
使用列表理解:
data = [[ws.cell(column=j,row=i).value for j in range(1,4) if not ws.row_dimensions[j].hidden] for i in range(1,4) if not ws.row_dimensions[j].hidden]
print(data)
输出
>>> [[1231231, None, None], [3123, 123123, None], [123, 21322, None]]
推荐阅读
- sql - 从 ntext 中提取值
- java - 使用自定义注释扩展类级别 RequestMapping
- javascript - Python 日志的控制台
- ios - 确保 TextField 实际上包含文本
- php - 库存数量的 Woocommerce Rest API 问题
- jsp - 如何根据用户的位置在我的网站上显示项目?
- python - 通过合并更好地替代 groupby
- java - 将 oracle 表写入文件时的 JAVA-JDBC 'Numeric Overflow'
- android - 我如何在我的代码中添加进度通知以供下载
- c# - Rx 获取第一个元素并在一段时间内跳过后面的元素