openpyxl写入table表数据

说明:

1、通过python3中openpyxl模块,实现table表格数据写入

2、批量实现写入excel表格数据

3、调整table表格样式,通过更改数据能实现想要的样式格式

在这里插入图片描述

#! /usr/bin/python3
# -*- coding: utf-8 -*-

from openpyxl import Workbook
from openpyxl.worksheet.table import Table, TableStyleInfo

class WriteTable():
    def __init__(self, file_name):
        self.file_name = file_name

    # table表格数据写入
    def write_table(self):
        # 创建excel文件
        wb = Workbook()

        # 激活工作表并命名
        sheet = wb.active
        sheet.title = "2024木材价格"

        # 写入表头
        title_list = ("Fruit", "2011", "2012", "2013", "2014", "2015")
        sheet.append(title_list)

        # 批量写入表头
        # title_list = (
        #     ("Fruit", "2011", "2012", "2013", "2014", "2015"),
        # )
        # for item in title_list:
        #     sheet.append(item)

        # 批量写入数据
        data = (
            ['Apples', 10000, 5000, 8000, 6000, 5500],
            ['Pears', 2000, 3000, 4000, 5000, 4500],
            ['Bananas', 6000, 6000, 6500, 6000, 7800],
            ['Oranges', 500, 300, 200, 700, 8900],
            ['Cheery', 1500, 700, 900, 1700, 4300],
        )

        for row in data:
            sheet.append(row)

        # 'TableStyleLight11' 1-21 另外样式  'TableStyleMedium9' 1-28  'TableStyleDark1'  1-11
        tab = Table(displayName="Table1", ref="A1:F6")
        style = TableStyleInfo(name="TableStyleMedium11", showFirstColumn=True,
                               showLastColumn=False, showRowStripes=True, showColumnStripes=True)
        tab.tableStyleInfo = style
        sheet.add_table(tab)
        wb.save(self.file_name)

        print("写入table表数据完成!!!")

if __name__ == '__main__':
    # 定义变量
    file_name = "fruit/2025统计木材价格表.xlsx"
    html = WriteTable(file_name)
    html.write_table()
Python中,你可以使用`python-docx`库读取`.docx`文件中的格,并使用`openpyxl`库将数据写入`.xlsx`文件。以下是基本步骤: 1. **安装所需库**: 首先需要安装这两个库,如果你还没有安装,可以使用pip: ```bash pip install python-docx openpyxl ``` 2. **读取.docx中的格**: 使用`python-docx`的`Document`类加载文档,然后找到包含格的部分,例如`tables`属性: ```python from docx import Document doc = Document('input.docx') tables = doc.tables ``` 3. **处理数据**: 对于每个格,遍历其行和列提取内容: ```python for table in tables: rows = table.rows for row in rows: cells = [cell.text for cell in row.cells] # 这里处理数据,例如存储到列或其他结构中 ``` 4. **创建并写入.xlsx文件**: 使用`openpyxl`库创建一个新的工作簿,添加新的工作,然后写入数据: ```python from openpyxl import Workbook wb = Workbook() ws = wb.active for i, row_data in enumerate(your_processed_data): ws.append(row_data) # 将列作为一行写入 wb.save('output.xlsx') ``` 5. **完整示例**: ```python def process_tables_to_excel(doc_path, excel_path): doc = Document(doc_path) data = [] for table in doc.tables: # 提取数据... data.extend(process_table(table)) wb = Workbook() ws = wb.active ws.append(['Column1', 'Column2', ...]) # 标题行 ws.append(data) wb.save(excel_path) def process_table(table): # 这里处理单个格的数据... pass input_doc = 'input.docx' output_excel = 'output.xlsx' process_tables_to_excel(input_doc, output_excel) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋天枫叶35

希望能帮到你,谢谢你能阅读~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值