最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實(shí)現(xiàn)對(duì)excel的覆蓋和追加操作

 更新時(shí)間:2026年05月08日 09:07:50   作者:曾阿倫  
這篇文章主要為大家詳細(xì)介紹了如何使用python實(shí)現(xiàn)對(duì)excel的覆蓋和追加操作,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

在 Python 中處理 Excel 文件時(shí),覆蓋寫入和追加寫入是兩種常見需求。通常使用 pandas 結(jié)合 openpyxl 或直接使用 openpyxl 來實(shí)現(xiàn)。

下面分別給出覆蓋寫入和追加寫入的示例。

一、覆蓋寫入(清空原文件,寫入新數(shù)據(jù))

覆蓋寫入意味著每次運(yùn)行代碼時(shí),都會(huì)完全替換原有 Excel 文件中的內(nèi)容。

1.1 使用 pandas 實(shí)現(xiàn)覆蓋寫入

import pandas as pd
# 創(chuàng)建示例數(shù)據(jù)
data = {
    '姓名': ['張三', '李四', '王五'],
    '分?jǐn)?shù)': [85, 92, 78]
}
df = pd.DataFrame(data)
# 覆蓋寫入(如果文件已存在會(huì)被覆蓋)
df.to_excel('成績(jī)表.xlsx', index=False, sheet_name='Sheet1')
print("覆蓋寫入完成")

1.2 使用 openpyxl 實(shí)現(xiàn)覆蓋寫入

直接創(chuàng)建新的 Workbook 并保存,會(huì)覆蓋原有文件。

from openpyxl import Workbook

# 創(chuàng)建新工作簿
wb = Workbook()
ws = wb.active
ws.title = "Sheet1"

# 寫入表頭和數(shù)據(jù)
ws.append(['姓名', '分?jǐn)?shù)'])
ws.append(['張三', 85])
ws.append(['李四', 92])
ws.append(['王五', 78])

# 保存(覆蓋)
wb.save('成績(jī)表.xlsx')
print("覆蓋寫入完成")

二、追加寫入(保留原數(shù)據(jù),在末尾添加新行或新工作表)

追加寫入分為兩種情況:

  • 在已有工作表末尾追加新行(不覆蓋原有數(shù)據(jù))
  • 在同一個(gè)文件里增加新的工作表

2.1 使用 pandas + openpyxl 在現(xiàn)有工作表末尾追加行

pandas 的 to_excel 默認(rèn)會(huì)覆蓋整個(gè)文件,要實(shí)現(xiàn)追加,需要借助 openpyxl 讀取原有數(shù)據(jù)并合并。

方法一:先讀取原有數(shù)據(jù),合并后再寫入(適合數(shù)據(jù)量不大的情況)

import pandas as pd
from openpyxl import load_workbook
# 原有文件路徑
file_path = '成績(jī)表.xlsx'
# 讀取原有數(shù)據(jù)
try:
    df_old = pd.read_excel(file_path, sheet_name='Sheet1')
except FileNotFoundError:
    df_old = pd.DataFrame(columns=['姓名', '分?jǐn)?shù)'])  # 如果文件不存在則創(chuàng)建空DataFrame
# 新數(shù)據(jù)
new_data = pd.DataFrame({'姓名': ['趙六', '小明'], '分?jǐn)?shù)': [88, 95]})
# 合并
df_new = pd.concat([df_old, new_data], ignore_index=True)
# 寫回文件(覆蓋原文件,實(shí)際是替換整個(gè)內(nèi)容)
df_new.to_excel(file_path, index=False, sheet_name='Sheet1')
print("追加寫入完成")

注意:這種方法本質(zhì)還是覆蓋寫入,只是先讀取舊數(shù)據(jù)再和新數(shù)據(jù)合并后一起寫入,適合小文件。

方法二:使用 openpyxl 直接追加(更高效,不會(huì)丟失原文件的其他工作表)

from openpyxl import load_workbook

file_path = '成績(jī)表.xlsx'

# 加載工作簿
try:
    wb = load_workbook(file_path)
except FileNotFoundError:
    wb = Workbook()
ws = wb.active
if ws.title != 'Sheet1':
    ws.title = 'Sheet1'

# 追加數(shù)據(jù)(假設(shè)已有表頭,直接從下一行開始寫)
new_rows = [
    ['趙六', 88],
    ['小明', 95]
]
for row in new_rows:
    ws.append(row)

wb.save(file_path)
print("追加寫入完成")

2.2 在現(xiàn)有 Excel 文件中新增工作表(不影響原有工作表)

import pandas as pd
from openpyxl import load_workbook
file_path = '成績(jī)表.xlsx'
# 新數(shù)據(jù)
df_new_sheet = pd.DataFrame({'科目': ['數(shù)學(xué)', '語(yǔ)文', '英語(yǔ)'], '成績(jī)': [95, 88, 92]})
# 方法一:使用 pandas 的 ExcelWriter 添加新工作表
with pd.ExcelWriter(file_path, engine='openpyxl', mode='a', if_sheet_exists='replace') as writer:
    df_new_sheet.to_excel(writer, sheet_name='其他科目', index=False)
print("已新增工作表")

注意:mode='a' 表示追加模式,if_sheet_exists='replace' 表示如果同名工作表存在則替換。

三、總結(jié)

操作推薦方法特點(diǎn)
覆蓋寫入pd.DataFrame.to_excel() 或 openpyxl.Workbook().save()最簡(jiǎn)單,直接替換原文件
追加行openpyxl 的 worksheet.append()不破壞原文件其他內(nèi)容,性能較好
新增工作表pd.ExcelWriter(mode='a')保留原有工作表,添加新的 Sheet
完整追加(合并)pd.concat() + to_excel()適合少量數(shù)據(jù),會(huì)重寫整個(gè)文件

如果需要頻繁大量的追加操作,推薦使用 openpyxl 直接操作工作簿,避免反復(fù)讀寫整個(gè)文件。

四、方法補(bǔ)充

下面是小編整理的其他python實(shí)現(xiàn)對(duì)excel的覆蓋追加操作的完整代碼,感興趣的可以了解下

from openpyxl import Workbook, load_workbook

# 定義文件名和工作表名
filename = r"C:\Users\Administrator\Downloads\example.xlsx"

# 第一次寫入(創(chuàng)建文件并寫入兩個(gè)sheet)
def first_write():
    # 加載或創(chuàng)建新工作簿
    try:
        wb = load_workbook(filename)
    except FileNotFoundError:
        wb = Workbook()
        wb.remove(wb.active)

    # 檢查并刪除已存在的 "作者" 工作表(如果存在)
    if "機(jī)構(gòu)" in wb.sheetnames:
        del wb["機(jī)構(gòu)"]
    sheet1 = wb.create_sheet("機(jī)構(gòu)")
    for row in data1:
        sheet1.append(row)
    
    # 檢查并刪除已存在的 "作者" 工作表(覆蓋/新建sheet)
    if "作者" in wb.sheetnames:
        del wb["作者"]
    sheet2 = wb.create_sheet("作者")
    for row in data2:
        sheet2.append(row)
    
    wb.save(filename)

# 第二次寫入(追加sheet)
def second_write():
    # 加載已存在的文件
    wb = load_workbook(filename)

    # 檢查 "作者" 工作表是否存在,如果存在則獲取它,否則創(chuàng)建一個(gè)新的
    if "作者" in wb.sheetnames:
        sheet2 = wb["作者"]
    else:
        sheet2 = wb.create_sheet("作者")
    for row in data3:
        sheet2.append(row)
    
    wb.save(filename)

# 數(shù)據(jù)定義
data2 = [
    ['Header1', 'Header2', 'Header3'],
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

data1 = [
    ['Header11', 'Header12', 'Header13'],
    [11, 2, 3],
    [41, 5, 6],
    [71, 8, 9]
]

data3 = [
    [21, 2, 3],
    [42, 5, 6],
    [73, 8, 9]
]

# 執(zhí)行寫入操作
first_write()  # 首次寫入
second_write() # 覆蓋寫入

到此這篇關(guān)于python實(shí)現(xiàn)對(duì)excel的覆蓋和追加操作的文章就介紹到這了,更多相關(guān)python excel覆蓋和追加內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實(shí)現(xiàn)迷宮自動(dòng)尋路實(shí)例

    Python實(shí)現(xiàn)迷宮自動(dòng)尋路實(shí)例

    大家好,本篇文章主要講的是Python實(shí)現(xiàn)迷宮自動(dòng)尋路實(shí)例,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-02-02
  • Python?ArcPy實(shí)現(xiàn)批量對(duì)大量遙感影像相減做差

    Python?ArcPy實(shí)現(xiàn)批量對(duì)大量遙感影像相減做差

    這篇文章主要為大家介紹了如何基于Python中ArcPy模塊實(shí)現(xiàn)對(duì)大量柵格遙感影像文件批量進(jìn)行相減做差,文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2023-06-06
  • 淺談Python數(shù)學(xué)建模之線性規(guī)劃

    淺談Python數(shù)學(xué)建模之線性規(guī)劃

    線性規(guī)劃是運(yùn)籌學(xué)中研究較早、發(fā)展較快、應(yīng)用廣泛、方法較成熟的一個(gè)重要分支,它是輔助人們進(jìn)行科學(xué)管理的一種數(shù)學(xué)方法。研究線性約束條件下線性目標(biāo)函數(shù)的極值問題的數(shù)學(xué)理論和方法
    2021-06-06
  • keras自定義回調(diào)函數(shù)查看訓(xùn)練的loss和accuracy方式

    keras自定義回調(diào)函數(shù)查看訓(xùn)練的loss和accuracy方式

    這篇文章主要介紹了keras自定義回調(diào)函數(shù)查看訓(xùn)練的loss和accuracy方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • python使用webdriver爬取微信公眾號(hào)

    python使用webdriver爬取微信公眾號(hào)

    這篇文章主要為大家詳細(xì)介紹了python使用webdriver爬取微信公眾號(hào)信息,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Python批量處理圖片大小尺寸方法詳解

    Python批量處理圖片大小尺寸方法詳解

    這篇文章主要介紹了用Python批量處理圖片大小尺寸的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-11-11
  • Python MySQL如何通過Binlog獲取變更記錄恢復(fù)數(shù)據(jù)

    Python MySQL如何通過Binlog獲取變更記錄恢復(fù)數(shù)據(jù)

    本文介紹了如何使用Python和pymysqlreplication庫(kù)通過MySQL的二進(jìn)制日志(Binlog)獲取數(shù)據(jù)庫(kù)的變更記錄,并展示了一個(gè)簡(jiǎn)單的Python腳本,該腳本讀取Binlog事件并打印出插入、更新和刪除操作的SQL語(yǔ)句,此外,還提到可以使用pandas將結(jié)果輸出到Excel表格中進(jìn)行數(shù)據(jù)分析處理
    2025-01-01
  • 使用Python從Excel文件中自動(dòng)提取圖片的全過程

    使用Python從Excel文件中自動(dòng)提取圖片的全過程

    在日常數(shù)據(jù)處理工作中,我們常常需要面對(duì)包含大量圖片的Excel文件,無論是產(chǎn)品目錄、員工檔案還是資產(chǎn)清單,這些圖片往往承載著重要的視覺信息,所以本文將深入探討如何使用Python與spire.xls for python庫(kù),為您提供一個(gè)詳細(xì)、可操作的Excel圖片提取教程
    2026-02-02
  • 如何使用pyinstaller打包時(shí)引入自己編寫的庫(kù)

    如何使用pyinstaller打包時(shí)引入自己編寫的庫(kù)

    這篇文章主要介紹了如何使用pyinstaller打包時(shí)引入自己編寫的庫(kù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Pytorch distributed 多卡并行載入模型操作

    Pytorch distributed 多卡并行載入模型操作

    這篇文章主要介紹了Pytorch distributed 多卡并行載入模型操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06

最新評(píng)論

三穗县| 伊金霍洛旗| 兴安县| 万年县| 郁南县| 比如县| 图木舒克市| 定远县| 临猗县| 建湖县| 辰溪县| 巴东县| 齐齐哈尔市| 石狮市| 江城| 军事| 广水市| 盐山县| 哈巴河县| 游戏| 铜鼓县| 汤原县| 美姑县| 万荣县| 崇州市| 武安市| 永兴县| 泰来县| 壤塘县| 财经| 仙桃市| 吐鲁番市| 广河县| 怀集县| 察雅县| 绥芬河市| 谢通门县| 德阳市| 临泽县| 耒阳市| 南充市|