【python】openpyxl写入excel不同sheet和设置自动换行

from colorama import init
init(autoreset=True)
from openpyxl.styles import Alignment
import openpyxl as op


class Basic(object):
    def save_excel(self, excel, data, sheet="Sheet"):
        if os.path.exists(excel):
            wb = op.load_workbook(excel)
            if sheet not in wb.sheetnames:
                wb.create_sheet(sheet)
            ws = wb[sheet]
        else:
            wb = op.Workbook()
            ws = wb["Sheet"]
            ws.title = sheet
        for row in data:
            ws.append(row)
        try:
            wb.save(excel)
            self.print_log("生成文件: {}文件{}页数据输出完成".format(excel, sheet), 1)
        except Exception as e:
            self.print_log("生成文件: {}文件失败,原因:{}".format(excel, e), 3)

    def save_compare_excel(self, excel, data, sheet="Sheet"):
        wb = op.Workbook()
        ws = wb["Sheet"]
        ws.title = sheet
        ws.column_dimensions['A'].width = 80
        ws.column_dimensions['B'].width = 8
<think>我们使用openpyxl库来操作Excel文件。主要步骤包括: 1. 导入openpyxl模块 2. 创建一个工作簿或加载现有工作簿 3. 创建新的工作表(可以指定名称位置) 4. 向工作表中写入数据(可以逐行写入,也可以按单元格写入) 5. 保存工作簿到文件 注意:如果创建新工作簿,默认会有一个名为“Sheet”的工作表。我们可以通过`create_sheet`方法来创建新的工作表。 下面是一个示例代码,展示如何创建一个新的Excel文件,添加两个工作表(一个默认的,另一个是我们创建的),并在新创建的工作表中写入一些数据。 另外,我们也可以加载一个现有的Excel文件,然后添加新的工作表并写入数据。 我们将分别演示两种情况:创建新文件修改现有文件。</think>### 使用 openpyxl 创建新工作表并写入 Excel 文件 以下是使用 Pythonopenpyxl 库创建新工作表并写入数据的完整步骤: #### 1. 安装 openpyxl ```bash pip install openpyxl ``` #### 2. 基本操作代码 ```python from openpyxl import Workbook # 创建新工作簿(默认包含名为"Sheet"的工作表) wb = Workbook() # 创建新工作表(默认添加到末尾) new_sheet = wb.create_sheet(title="新工作表") # 指定工作表名称 # 在指定位置创建工作表(索引从0开始) positioned_sheet = wb.create_sheet(title="第二张表", index=1) # 插入到第二个位置 # 写入数据到新工作表(两种方式) # 方式1:按单元格写入 new_sheet['A1'] = "姓名" new_sheet['B1'] = "年龄" new_sheet['A2'] = "张三" new_sheet['B2'] = 25 # 方式2:按行批量写入 data_rows = [ ["李四", 30], ["王五", 28], ["赵六", 35] ] for row in data_rows: new_sheet.append(row) # 自动追加到下一行 # 保存工作簿到文件 wb.save("示例文件.xlsx") ``` #### 3. 关键方法说明 1. **创建工作簿** `wb = Workbook()` 创建新工作簿(自动包含默认工作表) 2. **创建新工作表** - `create_sheet(title="名称")` 在末尾创建 - `create_sheet(title="名称", index=0)` 在指定位置创建 - 工作表名称不能重复,否则报错 `ValueError` 3. **写入数据** - 单元格写入:`sheet['A1'] = 值` - 批量追加:`sheet.append(["数据1", "数据2"])`(自动换行) 4. **访问工作表** - 按名称:`sheet = wb["工作表名"]` - 按索引:`sheet = wb.worksheets[0]` #### 4. 修改现有文件 ```python from openpyxl import load_workbook # 加载现有文件 wb = load_workbook("已有文件.xlsx") # 添加新工作表 new_sheet = wb.create_sheet("新增数据") # 写入格式化的数据 headers = ["产品", "销量", "单价"] products = [ ["手机", 120, 2999], ["笔记本", 85, 5999], ["平板", 65, 3999] ] new_sheet.append(headers) for product in products: new_sheet.append(product) # 保存修改(覆盖原文件) wb.save("已有文件.xlsx") ``` #### 5. 注意事项 1. 工作表名称限制: - 最大 31 字符 - 不能包含 `: \ / ? * [ ]` - 不能以单引号开头/结尾 2. 性能优化: ```python # 写入大量数据时关闭自动计算 wb = Workbook() wb.guess_types = False # 关闭类型猜测 wb.save("大数据文件.xlsx") ``` 3. 错误处理: ```python try: wb.create_sheet("重复表名") except ValueError as e: print(f"创建失败: {str(e)}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值