当前位置:首页 > Python > 正文

Python将九九乘法表写入Excel完整教程 | Python数据处理技巧

Python将九九乘法表写入Excel教程

Python是处理Excel文件的强大工具。本教程将向您展示如何使用Python的openpyxl库将九九乘法表写入Excel文件。您将学到如何创建Excel工作簿、操作工作表以及设置单元格格式。

准备工作

在开始之前,您需要安装openpyxl库,这是Python处理Excel文件的主要工具之一:

pip install openpyxl

步骤1: 创建Excel工作簿

首先,我们需要创建一个新的Excel工作簿和工作表:

from openpyxl import Workbook

# 创建工作簿
wb = Workbook()
# 获取活动工作表
ws = wb.active
# 设置工作表标题
ws.title = "九九乘法表"

步骤2: 生成九九乘法表数据

使用嵌套循环生成九九乘法表的数据:

# 创建数据
multiplication_table = []
for i in range(1, 10):
    row = []
    for j in range(1, 10):
        row.append(f"{i} × {j} = {i*j}")
    multiplication_table.append(row)

步骤3: 将数据写入Excel

将生成的数据写入Excel工作表:

# 添加行和列标题
ws['A1'] = "九九乘法表"
ws.merge_cells('A1:J1')  # 合并第一行的单元格

# 写入行标题(1-9)
for i in range(1, 10):
    ws.cell(row=2, column=i+1, value=i)
    ws.cell(row=i+2, column=1, value=i)

# 写入乘法表数据
for row_idx, row_data in enumerate(multiplication_table, start=3):
    for col_idx, cell_data in enumerate(row_data, start=2):
        ws.cell(row=row_idx, column=col_idx, value=cell_data)

步骤4: 设置单元格样式

为Excel表格添加样式,使其更美观:

from openpyxl.styles import Font, Alignment, Border, Side, PatternFill

# 设置标题样式
title_cell = ws['A1']
title_cell.font = Font(bold=True, size=16, color="FFFFFF")
title_cell.alignment = Alignment(horizontal='center', vertical='center')
title_cell.fill = PatternFill(start_color="3498DB", end_color="3498DB", fill_type="solid")

# 设置行/列标题样式
header_fill = PatternFill(start_color="F1C40F", end_color="F1C40F", fill_type="solid")
header_font = Font(bold=True)

for i in range(2, 11):
    # 行标题
    ws.cell(row=i, column=1).font = header_font
    ws.cell(row=i, column=1).fill = header_fill
    # 列标题
    ws.cell(row=2, column=i).font = header_font
    ws.cell(row=2, column=i).fill = header_fill

# 设置数据区域样式
thin_border = Border(left=Side(style='thin'), 
                     right=Side(style='thin'), 
                     top=Side(style='thin'), 
                     bottom=Side(style='thin'))

for row in ws.iter_rows(min_row=3, max_row=11, min_col=2, max_col=10):
    for cell in row:
        cell.border = thin_border
        cell.alignment = Alignment(horizontal='center')

步骤5: 调整列宽并保存文件

调整列宽以适应内容并保存Excel文件:

# 调整列宽
for col in ws.columns:
    max_length = 0
    column = col[0].column_letter
    for cell in col:
        try:
            if len(str(cell.value)) > max_length:
                max_length = len(cell.value)
        except:
            pass
    adjusted_width = (max_length + 2)
    ws.column_dimensions[column].width = adjusted_width

# 保存文件
wb.save("九九乘法表.xlsx")
print("Excel文件已成功创建!")

完整代码示例

下面是完整的Python代码,用于生成九九乘法表Excel文件:

from openpyxl import Workbook
from openpyxl.styles import Font, Alignment, Border, Side, PatternFill

# 创建工作簿和工作表
wb = Workbook()
ws = wb.active
ws.title = "九九乘法表"

# 生成九九乘法表数据
multiplication_table = []
for i in range(1, 10):
    row = []
    for j in range(1, 10):
        row.append(f"{i} × {j} = {i*j}")
    multiplication_table.append(row)

# 添加标题
ws['A1'] = "九九乘法表"
ws.merge_cells('A1:J1')

# 添加行列标题
for i in range(1, 10):
    ws.cell(row=2, column=i+1, value=i)
    ws.cell(row=i+2, column=1, value=i)

# 写入数据
for row_idx, row_data in enumerate(multiplication_table, start=3):
    for col_idx, cell_data in enumerate(row_data, start=2):
        ws.cell(row=row_idx, column=col_idx, value=cell_data)

# 设置标题样式
title_cell = ws['A1']
title_cell.font = Font(bold=True, size=16, color="FFFFFF")
title_cell.alignment = Alignment(horizontal='center', vertical='center')
title_cell.fill = PatternFill(start_color="3498DB", end_color="3498DB", fill_type="solid")

# 设置行列标题样式
header_fill = PatternFill(start_color="F1C40F", end_color="F1C40F", fill_type="solid")
header_font = Font(bold=True)

for i in range(2, 11):
    ws.cell(row=i, column=1).font = header_font
    ws.cell(row=i, column=1).fill = header_fill
    ws.cell(row=2, column=i).font = header_font
    ws.cell(row=2, column=i).fill = header_fill

# 设置表格边框
thin_border = Border(left=Side(style='thin'), 
                     right=Side(style='thin'), 
                     top=Side(style='thin'), 
                     bottom=Side(style='thin'))

for row in ws.iter_rows(min_row=3, max_row=11, min_col=2, max_col=10):
    for cell in row:
        cell.border = thin_border
        cell.alignment = Alignment(horizontal='center')

# 调整列宽
for col in ws.columns:
    max_length = 0
    column = col[0].column_letter
    for cell in col:
        try:
            if len(str(cell.value)) > max_length:
                max_length = len(cell.value)
        except:
            pass
    adjusted_width = (max_length + 2)
    ws.column_dimensions[column].width = adjusted_width

# 保存文件
wb.save("九九乘法表.xlsx")
print("Excel文件已成功创建!")

最终效果

运行上述代码后,您将得到一个名为"九九乘法表.xlsx"的Excel文件,其中包含格式精美的九九乘法表:

九九乘法表
1 2 3
1 1 × 1 = 1 1 × 2 = 2 1 × 3 = 3
2 2 × 1 = 2 2 × 2 = 4 2 × 3 = 6

总结

通过本教程,您学会了:

  • 使用openpyxl库创建Excel工作簿和工作表
  • 生成九九乘法表数据并写入Excel单元格
  • 设置单元格样式(字体、颜色、对齐方式、边框)
  • 调整列宽以适应内容
  • 保存Excel文件

这个技能可以扩展到更复杂的数据处理任务中,如生成报告、数据分析结果导出等。

常见问题解答

Q: 如何安装openpyxl库?
A: 使用命令 pip install openpyxl

Q: 如何修改生成的Excel文件名?
A: 在wb.save()方法中修改文件名参数

Q: 可以添加多个工作表吗?
A: 可以,使用wb.create_sheet("工作表名称")创建新工作表

Q: 如何添加图表到Excel?
A: openpyxl支持图表功能,需要从openpyxl.chart导入相应图表类

发表评论