自学内容网 自学内容网

【Python】Marmir 使用指南:Python 驱动的电子表格生成器

在这里插入图片描述

Marmir 是一个由 Python 驱动的电子表格生成工具,专门用于将 Python 数据结构(如字典、列表等)转换为电子表格文件(如 Excel)。Marmir 的设计目标是提供比传统电子表格库(如 xlwt)更强大和灵活的操作,并且支持从多种数据源(如 Django 模型、数据库游标等)生成多种格式的表格文件(如 XLS、HTML、Google 表格)。其主要优势在于能够处理复杂的数据结构并提供丰富的表格样式和自定义格式。

在这里插入图片描述
华丽的分割线


标题1

🔨 Marmir 的特点

  1. 多格式输出:支持生成 Excel、Google 表格、HTML 表格等多种格式的表格文件。
  2. 丰富的数据源支持:支持直接从 Python 数据结构、Django QuerySets 以及数据库游标(如 Psycopg2)进行数据导入。
  3. 自动类型转换:能够智能识别数据类型(如日期、数字、字符串等)并自动进行格式化处理。
  4. 自定义样式:允许用户配置表格样式(如列宽、单元格颜色、对齐方式等),生成更美观的电子表格。

标题2

📦 安装与使用

安装

可以通过以下命令使用 pip 安装 Marmir:

pip install Marmir

安装完成后,即可在 Python 项目中导入 mm 模块,并开始创建电子表格。

基础使用方法

Marmir 提供了简单的 API 来快速创建和输出电子表格文件。以下是几种常见的用法:

1. 从字典创建电子表格

使用字典列表创建电子表格,并保存为 XLS 文件:

import datetime
import mm

# 定义数据
now = datetime.datetime.now().replace(microsecond=0)
my_data = [
    {'msg': "我的第一行", 'id': 1, 'when': now},
    {'msg': "我的第二行", 'id': 2, 'when': now}
]

# 创建电子表格文档
mm_doc = mm.Document(my_data)
mm_doc.write("example.xls")

该代码将 my_data 转换为 Excel 文件 example.xls,其中每一行为一个字典。

2. 使用元组和自定义列顺序

除了使用字典,还可以使用元组并指定列的顺序:

# 定义列顺序和数据
my_headers = ('id', 'msg', 'when')
my_data = [
    (1, "我的第一行", now),
    (2, "我的第二行", now)
]

# 按列顺序生成电子表格
mm_doc = mm.Document(my_data, order=my_headers)
mm_doc.write("ordered_example.xls")
3. 使用自定义格式化对象

Marmir 提供了内置类型(如 mm.Datemm.URL)来增强数据的格式化功能:

my_data = [
    {'msg': "我的第一行", 'id': 1, 'when': mm.Date(datetime.datetime.now(), "%Y-%m-%dT%H:%M:%S"), 'homepage': mm.URL("https://github.com/brianray")},
    {'msg': "我的第二行", 'id': 2, 'when': datetime.datetime.now(), 'homepage': mm.URL("http://twitter.com/brianray", "Tweet Me")}
]

# 创建包含自定义格式化对象的文档
mm_doc = mm.Document(my_data)
mm_doc.write("formatted_example.xls")

该代码会根据 mm.Datemm.URL 格式化时间和超链接,使生成的表格文件更加美观和易读。


标题3

♨️ 高级功能

1. 与 Django 的集成

Marmir 支持直接从 Django QuerySets 生成电子表格:

from yourproject.models import TestModel
from mm.contrib.django.data_model import DjangoDataModel
from mm.contrib.django.grid import DjangoGrid

# 使用 Django QuerySet 生成电子表格
django_query_set = TestModel.objects.all()
mm_doc = mm.Document(django_query_set, data_model_class=DjangoDataModel, grid_class=DjangoGrid)
mm_doc.write("django_example.xls")

这种方式适合快速生成基于数据库查询结果的电子表格文件。

2. 生成 Google 电子表格

Marmir 还支持将数据直接发布到 Google 电子表格中:

mm_doc.write_gdata("Example Spreadsheet", "Username", "Password")

只需提供 Google 账号的用户名和密码,即可在 Google 云端中创建新的电子表格文档。


标题4

🧱 实战案例:生成报表与数据分析

以下是一个从数据库中导入数据,并生成格式化报表的典型案例:

import psycopg2
import mm

# 使用 Psycopg2 连接数据库
conn = psycopg2.connect(database="testdb", user="user", password="password", host="127.0.0.1", port="5432")
cursor = conn.cursor()
cursor.execute("SELECT id, name, age FROM employees")

# 使用 Marmir 生成 XLS 文件
mm_doc = mm.Document(cursor)
mm_doc.write("employee_report.xls")

该代码展示了如何使用 Marmir 从数据库中读取数据,并生成 Excel 报表,非常适合于数据分析和商业报表的自动化生成。


标题5

⁉️ 常见问题与注意事项

  1. 如何处理大规模数据集?
    可以使用 mm.Document 的流式操作来逐行写入数据,从而避免内存溢出。
  2. Django 集成时如何自定义字段?
    使用 data_model_class 自定义字段映射和显示格式。

标题6

📥 下载地址


Marmir 最新版 下载地址


标题7

💬 结语

Marmir 是一个功能强大的 Python 电子表格工具,特别适合需要从 Python 数据结构生成 Excel 或 Google 表格的场景。其丰富的数据源支持、强大的自定义功能和易用的 API,使其成为创建电子表格和报表的理想选择。


标题8

📒 参考文献


TheEnd


在这里插入图片描述
在这里插入图片描述


原文地址:https://blog.csdn.net/jacksoon/article/details/142645356

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!