如何在Python中读取,编辑和另存为另一个excel文件?

MuSu18

我有一个Excel文件,其中包含多个工作表(sheet1,sheet2,sheet3,sheet4等)。我想使用python进行一些格式更改,并将这些编辑后的文件另存为具有多个工作表的单独的excel文件。

步骤1:读取包含多张纸的文件

步骤2:在工作表中进行更改

步骤3:将更改保存到包含多张图纸的Excel文件中

到目前为止我尝试了什么?

import pandas as pd
import pandas.io.formats.style
import os
from pandas import ExcelWriter
import numpy as np
import xlsxwriter
from itertools import cycle

from xlsxwriter.utility import xl_rowcol_to_cell

df = pd.ExcelFile('data.xlsx')

for i in df.sheet_names:
    # make the required changes
    writer = pd.ExcelWriter('edited_file.xlsx', engine='xlsxwriter', options={'strings_to_numbers': True}, date_format='mmmm dd yyyy')  
    df.to_excel(writer, sheet_name= i , startrow=1 , startcol=0, header=False, index=False, encoding='utf8')  
    workbook  = writer.book
    worksheet = writer.sheets[i]

    data_format1 = workbook.add_format({'bg_color': '#F1EEEE'})
    data_format2 = workbook.add_format({'bg_color': '#FFFFFF'})

    formats = cycle([data_format1, data_format2])

    for row, value in enumerate(df):
        data_format = next(formats)
        worksheet.set_row(row, cell_format=data_format)
        worksheet.write(row, 0, value)

    format_header = workbook.add_format()
    format_header.set_bold()
    format_header.set_border()
    format_header.set_bg_color('gray')
    format_header.set_font_color('white')

    format_data = workbook.add_format()

    #worksheet.set_column('A:Z', 20, format_data)
    worksheet.set_row(0, 20, format_header)

    # Write the header manually
    for colx, value in enumerate(df.columns.values):
        worksheet.write(0, colx, value)

    worksheet.autofilter(0, 0, df.shape[0], df.shape[1])

    writer.save()

我无法保存多张纸,仅保存了第一张纸。我怎么做?

PieCot

循环结束后,您必须移出pd.ExcelWriter循环并writer.save()调用一次:

writer = pd.ExcelWriter('edited_file.xlsx', engine='xlsxwriter', options={'strings_to_numbers': True}, date_format='mmmm dd yyyy')
for i in df.sheet_names:
    ...
    ...
    ...
    worksheet.autofilter(0, 0, df.shape[0], df.shape[1])
writer.save()

此外,我认为您应该ExcelFile以其他方式使用(至少使用时openpyxl):

exc = pd.ExcelFile('data.xlsx', engine='openpyxl')

writer = pd.ExcelWriter('edited_file.xlsx', engine='xlsxwriter', options={'strings_to_numbers': True}, date_format='mmmm dd yyyy')
for i in exc.sheet_names:
    df = exc.parse(i)
    ...
    ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何隐藏用户密码输入并将其另存为输出以替换另一个文件中的默认密码

将所有.csv文件从Google存储桶中读取到一个大熊猫df中,然后另存为.csv到另一个存储桶中

python lxml-循环/遍历excel行并将每一行另存为一个xml

如何对两个不同的txt文件中的数字进行排序,然后将它们另存为一个txt文件

Excel VBA:将“形状”(图片)复制到另一个工作簿会使图片另存为JPEG而不是PNG

如何在大量gz /常规文件中查找包含某些字符串的日志并将其另存为一个/多个txt文件?

Excel:为什么“文件->另存为”不记得会话之间的最后一个目录?

编辑目录中的所有文件并另存为另一个副本

如何在Notepad ++中的“另存为”对话框中编辑“另存为类型:”列表?

Python:如何打开具有格式的多页.xslx文件并编辑一些单元格并将其另存为另一个.xlsx文件

python如何读取tsv文件,将其清理并另存为新文件?

将一个类另存为另一个局部类

如何在一个文件夹中运行python程序以及如何从另一个文件夹导入和运行python程序

如何在Excel中自动将日期和小时另存为文本?

打开一个文件夹中的所有dbf文件,并将其另存为excel到另一个文件夹中

列出目录中的文件,而bashand中没有扩展名,另存为另一个文件

在熊猫中读取另存为CSV文件的Excel数据集

将JSON值另存为另一个JSON文件

如何将Excel工作簿中的所有工作表另存为一个文本文件?

将另一个工作表另存为pdf,同时循环浏览下拉菜单,而不显示每个项目的“另存为”框

将目录中的每个 PDF 文件另存为另一个 PDF(类似于将 PDF 打印为 PDF 的操作)

将 LINQ 查询另存为变量以调用另一个 LINQ 查询

Python代码问题 - 试图创建一个定位文件的脚本,编辑它并将其另存为新文件

如何在另一个python函数中执行一个python文件?

如何在另一个文件目录中的另一个脚本中导入 Python 文件?

如何在python中“写入新的.CSV文件”或“另存为新的.CSV文件”

如何在 Excel 中的不同目录中将每一行另存为单独的文件(在其中一列中引用目录名称)?

如何通过文件夹进行宏循环并将数据从一个 Excel 工作簿复制到另一个并另存为新名称?

Python:如何输入两个元素作为输入但将其另存为列表中的一个