python实现生成多种文件格式:excel、csv、pdf

python实现生成多种文件格式:excel、csv、pdf

bash 复制代码
import data_util, time_util
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.backends.backend_pdf import PdfPages

if __name__ == '__main__':

    data = data_util.get_superset_data()
    df = ''
    if (len(data) > 0):
        # 应用函数转换时间戳
        for entry in data:
            entry['日程开始时间'] = time_util.convert_to_pst(entry['日程开始时间'])
            entry['日程结束时间'] = time_util.convert_to_pst(entry['日程结束时间'])

            if isinstance(data, dict):
                if data:
                    df = pd.DataFrame.from_records([data])
                else:
                    print("Data is an empty dictionary")
                    df = pd.DataFrame()
            elif isinstance(data, list):
                dfs = [pd.DataFrame.from_records([item]) for item in data if isinstance(item, dict)]
                df = pd.concat(dfs, ignore_index=True)
            else:
                print("Data is not a list or a dictionary")
                df = pd.DataFrame()

            # df.to_excel('media.xlsx', index=False)
            # df.to_csv('media.csv', index=False)

            # PDF文件格式
            plt.rcParams['font.sans-serif'] = ['SimHei']
            plt.rcParams['axes.unicode_minus'] = False

        #print(df)
            # 创建一个PDF文件
        with PdfPages('media.pdf') as pdf:
            # 将DataFrame绘制成表格
            fig, ax = plt.subplots(figsize=(8.27, 11.69), dpi=400)  # 设置dpi为300,提高图像质量
            ax.axis('tight')
            ax.axis('off')
            ax.table(cellText=df.values, colLabels=df.columns, loc='top', cellLoc='center')
            pdf.savefig(dpi=400)  # 将当前图形保存到PDF,并设置dpi
            plt.close()

        print("PDF文件已生成")
相关推荐
ljh5746491192 分钟前
用vscode怎么运行conda中的python环境
vscode·python·conda
秋邱8 分钟前
AR 技术创新与商业化新方向:AI+AR 融合,抢占 2025 高潜力赛道
前端·人工智能·后端·python·html·restful
Stara051110 分钟前
LangChain—大语言模型应用开发框架的体系化架构解析
python·langchain·llm·agent·提示工程·rag
只与明月听17 分钟前
一个有趣的面试题
前端·后端·python
陌上倾城落蝶雨27 分钟前
django基础命令
后端·python·django
虎头金猫30 分钟前
openEuler 22.03 LTS 时序数据库实战:InfluxDB 深度性能评测与优化指南
网络·数据库·python·网络协议·tcp/ip·负载均衡·时序数据库
Jay200211136 分钟前
【机器学习】28-29 推荐系统 & 推荐系统实现
人工智能·python·机器学习
闲人编程37 分钟前
FastAPI框架架构与设计哲学
python·架构·api·fastapi·异步·codecapsule
小兔崽子去哪了40 分钟前
Matplotlib 可视化 / pandas 绘图 / Seaborn 绘图
python·pandas
shenzhenNBA1 小时前
如何在python项目中使用日志功能?通用版本
java·开发语言·python·日志·log