iter_cols是openpyxl库中的一个方法,用于按列迭代读取内容。
在openpyxl中,iter_cols和iter_cols方法用于返回一个生成器,该生成器按列遍历给定的行范围。它接受四个参数:min_row,min_col,max_row和max_col,这些参数定义了要迭代的单元格范围。
1 语法:
worksheet.iter_rows(min_row=1, # 最小行
max_row=None, # 最大行
min_col=1, # 最小列
max_col=None, # 最大列
values_only=False # 为True,只得到单元格的值
)
worksheet.iter_cols(min_row=1, # 最小行
max_row=None, # 最大行
min_col=1, # 最小列
max_col=None, # 最大列
values_only=False # 为True,只得到单元格的值
)
实例:
演示了如何批量设置列的数字格式。
from openpyxl import Workbook
from openpyxl.styles import *
wb = Workbook()
ws = wb.active
# 设置单个单元格的数字格式
numbers_list = [10,0.34345,.0312456,12345679,123456789,'2023/04/05',12.34566,10235,10234.123,100000]
format_list = ['General','0.00%','0%','€#,##0.00','0.00E+00','yyyy-mm-dd','0.00','#,##0','#,##0.00','#,##0_);(#,##0)']
for i in range(1,len(numbers_list)):
ws[f'A{i}'] = numbers_list[i-1]
ws[f'A{i}'] .number_format = format_list[i-1]
format_list2 = ['numbers.FORMAT_GENERAL','numbers.FORMAT_PERCENTAGE_00','numbers.FORMAT_PERCENTAGE',
'numbers.FORMAT_ACCOUNTING','numbers.FORMAT_SCIENTIFIC','numbers.FORMAT_DATE','numbers.FORMAT_NUMBER_00',
'numbers.FORMAT_ACCOUNTING_#,##0','numbers.FORMAT_TEXT','numbers.FORMAT_NUMBER_00']
for i in range(1,len(numbers_list)):
ws[f'B{i}'] = numbers_list[i-1]
ws[f'B{i}'] .number_format = format_list2[i-1]
# 对一整列数字格式进行设置
for cell in ws.iter_cols(min_col=1, max_col=1):
for c in cell:
c.number_format = "0%"
for cell in ws.iter_cols(min_col=2, max_col=2):
for c in cell:
c.number_format = numbers.FORMAT_PERCENTAGE_00
wb.save('example.xlsx')