python - 从openpyxl中获取一行值的最干净的方法?
问题描述
我有一些以前使用python csv 模块处理 .csv 文件的代码。由于我们的源材料实际上是 Excel,如果我们可以直接处理 .xlsx 文件会简单得多,所以我找到了 openpyxl并开始使用它 - 看起来它应该可以满足我们的需要。
以前,我们有一个简单/标准的代码块,它使用 csv.reader 和 islice 一次抓取一行并为每一行分配一堆值:
with open(csvfile) as f:
reader = csv.reader(f, dialect='excel')
for row in islice(reader, 28,29):
[ifile, in_time, dur, day, sess, flight, dive] = row
csv.reader 函数将每一行作为字符串列表返回,这是程序的其余部分(在本例中)我的本地行变量所期望的。然而,Openpyxl 似乎想要返回一个生成器(这是有道理的):我可以轻松地使用该生成器,将所有值转换为字符串,将这些字符串附加到临时列表中,然后将所有原始变量分配给那个临时清单。但在我看来,应该有一种更优雅的方式——我在整个 python 演出中都很新,但似乎总是有一种更清洁的方式来做这样的事情。
wb = openpyxl.load_workbook('tunnel.xlsx')
sheet = wb.active
for row in sheet.iter_rows(min_row=2, min_col=1, max_row=4, max_col=7):
# build a temporary list to store the actual cell values
my_cell_values = []
for cell in row:
my_cell_values.append(str(cell.value))
[ifile, in_time, dur, day, sess, flight, dive] = my_cell_values
建议在这里表示赞赏。它以这种方式工作得很好,但对我来说它并不“看起来正确”
解决方案
推荐阅读
- javascript - 如何在提交之前验证此表单?
- reactjs - 如何触发与再次渲染无关的组件?
- ruby-on-rails - Rail:为什么我会得到这个错误的参数,即 URI 对象或 URI 字符串错误
- html - 我正在使用我的网站中嵌入的字体。第一次需要更多时间加载字体
- python - 未找到“data:image/png;base64,”的连接适配器
- r - 为经纬度点数据设置 CRS
- ruby-on-rails - 我应该使用哪个版本的 rails 6.1.3.2 或 rails 6.1.4(这是最新的)?
- javascript - 如何在没有 jQuery 的情况下使用滚动功能延迟加载 iframe
- android-studio - 在android Studio中运行应用程序需要很长时间
- reactjs - 使用 Public 文件夹中的大量静态文件提高 React App 的性能