Openpyxl列表 根据条件汇总
时间: 2024-01-23 21:02:56 浏览: 28
您可以使用Python的openpyxl库来读取Excel文件,并使用条件筛选数据,然后汇总。
以下是一个示例代码,假设您要筛选名为Sheet1的工作表中所有“是”值的行,并汇总第2列的数值:
```python
import openpyxl
# 打开Excel文件
wb = openpyxl.load_workbook('example.xlsx')
# 选择工作表
sheet = wb['Sheet1']
# 创建空列表来存放符合条件的行
filtered_rows = []
# 遍历每一行
for row in sheet.iter_rows(min_row=2, values_only=True):
# 如果第一列的值为“是”,则将该行添加到列表中
if row[0] == '是':
filtered_rows.append(row)
# 计算第2列的总和
total = sum(row[1] for row in filtered_rows)
# 打印总和
print(total)
```
请注意,此代码假定第1列为条件列,第2列为要汇总的列。如果您的情况不同,请相应地更改代码。
相关问题
openpyxl读取列表
使用 openpyxl 库可以读取 Excel 文件中的列表数据,下面是一个简单的示例:
```python
from openpyxl import load_workbook
# 打开 Excel 文件
workbook = load_workbook('example.xlsx')
# 获取工作表
worksheet = workbook.active
# 读取数据
data = []
for row in worksheet.iter_rows(values_only=True):
data.append(list(row))
# 打印数据
print(data)
```
在这个示例中,我们使用 `load_workbook` 函数打开 Excel 文件,然后使用 `active` 属性获取活动工作表(即当前显示在屏幕上的工作表)。接下来,使用 `iter_rows` 方法遍历所有行,并将每行数据转换为列表,最后将这些列表添加到 `data` 列表中。最终,我们打印出 `data` 列表中的数据。
需要注意的是,上面的代码假设 Excel 文件中每个单元格只包含一个值。如果包含多个值,例如一个单元格中包含了一个列表,那么可以使用 `openpyxl.utils.cell.range_boundaries` 函数获取单元格的范围,并使用 `worksheet.iter_rows(min_row, max_row, min_col, max_col, values_only=True)` 方法来读取这个范围内的数据。
openpyxl添加列表
可以使用 openpyxl 中的 ListObject 类来添加 Excel 表格中的列表。以下是一个简单的示例:
```python
from openpyxl import Workbook
from openpyxl.worksheet.table import Table, TableStyleInfo
# 创建一个新的工作簿
wb = Workbook()
# 创建一个工作表
ws = wb.active
# 添加一些数据
ws.append(["Name", "Age"])
ws.append(["Alice", 25])
ws.append(["Bob", 30])
ws.append(["Charlie", 35])
# 定义列表的范围
table_range = "A1:B4"
# 创建一个列表对象
table = Table(displayName="Table1", ref=table_range)
# 定义表格样式
style = TableStyleInfo(name="TableStyleMedium9", showFirstColumn=False,
showLastColumn=False, showRowStripes=True, showColumnStripes=False)
# 应用表格样式
table.tableStyleInfo = style
# 将列表对象添加到工作表中
ws.add_table(table)
# 保存工作簿
wb.save("example.xlsx")
```
在上面的代码中,我们创建了一个名为 "Table1" 的列表对象,并将其应用于工作表中的数据范围(从 A1 到 B4)。我们还定义了一些表格样式,并将其应用于列表对象。最后,我们将列表对象添加到工作表中,并将工作簿保存到本地磁盘。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)