根据列值将CSV拆分为单独的Excel文件,然后在保存之前更改excel的格式

问题描述 投票:0回答:1

嗨,我是python的新手,但我的任务是创建一个工具,执行以下操作:1)打开一个csv文件2)将数据框分开一个列的值3)然后它将这些分组保存到个人excel工作簿和操作格式(可以根据新添加的数据将图表添加到其中一个工作表)

我找到了这个代码,它分组并保存到csv。我可以改为excel格式,但我真的很挣扎,我做格式化和图表位。任何帮助将非常感激。

gp = df.groupby('CloneID')
for g in gp.groups:
    path = 'CloneID' + str(g) + '.txt'
    gp.get_group(g).to_csv(path)
python pandas openpyxl
1个回答
1
投票

创建格式良好的Excel工作表的一种简单方法是预格式化模板,并使用openpyxl根据需要填充行。

在较高级别,您的项目应包含一个模板,该模板将是一个xlsx文件(excel)。例如,如果您将项目命名为my_project,则项目的结构应如下所示:

my_project
--__init__.py
--templates
----formated_excel.xlsx
--main.py

其中templates是一个目录,formatted_excel是一个xlsx文件,main.py是你的代码。

在main.py中,代码的基本逻辑将如下所示:

import os
import openpyxl

TEMPLATE = os.path.join(os.path.dirname(os.path.abspath(__file__)),
                                    'templates', 'formated_excel.xlsx')

wb = openpyxl.load_workbook(TEMPLATE)
# to use wb[VALUE], your template must have a sheet called VALUE
data_sheet = wb['Data'] 

# have enumerate start at 2, as in most cases row 1 of a sheet 
# is the header
for row, value in enumerate(data, start=2): 
    data_sheet[f'A{row}'] = value

wb.save('my_output.xlsx')

这个例子是关于如何使用openpyxl的一个非常非常基本的解释。

请注意,我假设您使用的是python3,否则,在设置要写入的data_sheet行时,您必须使用适当的字符串格式。 Openpyxl也有Chart Support,您可以阅读以便格式化图表。

您没有详细说明您想要做什么或您正在使用的数据,因此您必须扩展此示例以适合您的数据集。

© www.soinside.com 2019 - 2024. All rights reserved.