欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python之如何復制excel模板并保留表格樣式

 更新時間:2023年06月21日 11:11:14   作者:天才少女愛迪生  
這篇文章主要介紹了python之如何復制excel模板并保留表格樣式問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

python復制excel模板并保留表格樣式

需求

按照模板生成excel報表。

本地有一個模板Excel表,是xlsx格式。

需要把傳過來的數據,按照模板表生成新的寫入數據的報表。

情況

先嘗試了pandas,發(fā)現生成的新表并不會保留模板表中的樣式。查了各種處理excel的庫。

xlrd/xlwt/xlutils/win32/openpyxl等等,都有各種各樣問題。

結果

使用openpyxl讀取模板表,再保存,可以完全保留樣式復制模板excel,而且支持xlsx.

?import openpyxl
?df=openpyxl.load_workbook('costDay.xlsx')
?# wb=copy(df)
?df.save('de.xlsx')

其實還有個可以保留樣式的方式:

from xlrd import open_workbook
df=open_workbook('costDay.xlsx',formatting_info=True)

formatting_info的參數默認是False,默認不讀取表格樣式。如果設置True的話就會讀取樣式。

但很坑的一點是居然不支持xlsx,只支持xls。遂放棄。

python如何復制excel的表格內容及格式

python向excel寫內容時,格式如保復用的問題

如下圖

新寫入的數據,要與第一列保持一致

直接寫數據,效果是這樣的式的,顯然是不行。

# 定義一個函數,把df寫入excel的指定位置
# start_line:excel寫入的起始行
# data_df:要寫入的數組
def write_excel(filepath,start_line, data_df):
    # 打開待寫入文件
    filePath =filepath
    tableAll = op.load_workbook(filePath)
    table1 = tableAll['Sheet1']
    for c in range(data_df.shape[1]):
        for r in range(data_df.shape[0]):
            table1.cell(row=start_line, column=c + 2).value = data_df.columns[c]
            data = data_df.iloc[r, c]
            table1.cell(row=start_line + r + 2, column=c + 2).value = data
            # 以第一列復制格式
            table1.cell(row=start_line + r + 2, column=c + 2).font = copy(table1.cell(row=start_line + r + 2, column=1).font)
            table1.cell(row=start_line + r + 2, column=c + 2).fill = copy(table1.cell(row=start_line + r + 2, column=1).fill)
            table1.cell(row=start_line + r + 2, column=c + 2).border = copy(table1.cell(row=start_line + r + 2, column=1).border)
            table1.cell(row=start_line + r + 2, column=c + 2).number_format = copy(table1.cell(row=start_line + r + 2, column=1).number_format)
            table1.cell(row=start_line + r + 2, column=c + 2).protection = copy(table1.cell(row=start_line + r + 2, column=1).protection)
            table1.cell(row=start_line + r + 2, column=c + 2).alignment = copy(table1.cell(row=start_line + r + 2, column=1).alignment)
    tableAll.save(filePath)

效果是這樣的

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 配置 Pycharm 默認 Test runner 的圖文教程

    配置 Pycharm 默認 Test runner 的圖文教程

    今天小編就為大家分享一篇配置 Pycharm 默認 Test runner 的圖文教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Django ModelForm組件使用方法詳解

    Django ModelForm組件使用方法詳解

    這篇文章主要介紹了Django ModelForm組件使用方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • python統(tǒng)計日志ip訪問數的方法

    python統(tǒng)計日志ip訪問數的方法

    這篇文章主要介紹了python統(tǒng)計日志ip訪問數的方法,涉及Python操作日志文件及正則匹配的相關技巧,非常具有實用價值,需要的朋友可以參考下
    2015-07-07
  • PyInstaller運行原理及常用操作詳解

    PyInstaller運行原理及常用操作詳解

    這篇文章主要介紹了PyInstaller運行原理及常用操作詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • Python數據分析23種Pandas核心操作方法總結

    Python數據分析23種Pandas核心操作方法總結

    在本文中,作者從基本數據集讀寫、數據處理和?DataFrame?操作三個角度展示了?23?個?Pandas?核心方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • PyTorch中的神經網絡 Mnist 分類任務

    PyTorch中的神經網絡 Mnist 分類任務

    這篇文章主要介紹了PyTorch中的神經網絡 Mnist 分類任務,在本次的分類任務當中,我們使用的數據集是 Mnist 數據集,這個數據集大家都比較熟悉,需要的朋友可以參考下
    2023-03-03
  • 解決PyCharm不運行腳本,而是運行單元測試的問題

    解決PyCharm不運行腳本,而是運行單元測試的問題

    今天小編就為大家分享一篇解決PyCharm不運行腳本,而是運行單元測試的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python 存儲字符串時節(jié)省空間的方法

    Python 存儲字符串時節(jié)省空間的方法

    這篇文章主要介紹了Python 存儲字符串時節(jié)省空間的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • Python3.4學習筆記之常用操作符,條件分支和循環(huán)用法示例

    Python3.4學習筆記之常用操作符,條件分支和循環(huán)用法示例

    這篇文章主要介紹了Python3.4常用操作符,條件分支和循環(huán)用法,結合實例形式較為詳細的分析了Python3.4常見的數學運算、邏輯運算操作符,條件分支語句,循環(huán)語句等功能與基本用法,需要的朋友可以參考下
    2019-03-03
  • 給Python的Django框架下搭建的BLOG添加RSS功能的教程

    給Python的Django框架下搭建的BLOG添加RSS功能的教程

    這篇文章主要介紹了給Python的Django框架下搭建的BLOG添加RSS功能的教程,示例代碼非常簡單,需要的朋友可以參考下
    2015-04-04

最新評論