openpyxl模块的日常使用
openpyxl是另一个我觉得比较好用的xlsx操作模块,支持读和写,功能也比较丰富 。
下面是一个读的例子:
import openpyxl # 打开工作簿 workbook = openpyxl.load_workbook('示例.xlsx') # 获取工作表 sheet = workbook.active # 读取指定单元格的数据 cell_value = sheet['A1'].value print("A1单元格的数值为:", cell_value) # 读取指定行和列的单元格数据 row_num = 1 col_num = 1 cell_value = sheet.cell(row=row_num, column=col_num).value print(f"第{row_num}行,第{col_num}列的数值为: {cell_value}") # 按行读取数据,返回row是一个tuple for row in sheet.iter_rows(values_only=True): print(row) # 关闭工作簿 workbook.close()
下面是一个写的例子,包括填充数据和设置格式:
from openpyxl import Workbook from openpyxl.styles import Font, PatternFill, Border, Side # 创建一个新的工作簿 workbook = Workbook() # 获取活动的工作表 sheet = workbook.active # 写入数据 sheet['A1'] = '姓名' sheet['B1'] = '年龄' # 设置字体大小和加粗 sheet['A1'].font = Font(size=14, bold=True) sheet['B1'].font = Font(size=14, bold=True) # 写入数据行 data = [('Alice', 30), ('Bob', 25), ('Charlie', 35)] for row_num, row_data in enumerate(data, start=2): sheet[f'A{row_num}'] = row_data[0] sheet[f'B{row_num}'] = row_data[1] # 设置列宽 sheet.column_dimensions['A'].width = 20 sheet.column_dimensions['B'].width = 10 # 设置背景颜色 for row in sheet.iter_rows(min_row=1, max_row=len(data)+1, min_col=1, max_col=2): for cell in row: cell.fill = PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid") # 设置边框为细实线 thin_border = Border(left=Side(style='thin'), right=Side(style='thin'), top=Side(style='thin'), bottom=Side(style='thin')) for row in sheet.iter_rows(min_row=1, max_row=len(data)+1, min_col=1, max_col=2): for cell in row: cell.border = thin_border # 保存工作簿 workbook.save('example.xlsx')