You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySimpleGUI操作Excel DataFrame:删除Unnamed列、设置索引从1开始

解决方案

核心修改说明

  • 删除Unnamed列:读取Excel文件后,直接过滤所有列名以Unnamed开头的无效列即可
  • 存储索引从1开始:更新DataFrame的索引序列,将整体索引值+1,再写入Excel

修改后完整代码

import PySimpleGUI as sg
import pandas as pd
import openpyxl

sg.theme('DarkGreen7')

EXCEL_FILE = 'Data_Entry.xlsx'
df = pd.read_excel(EXCEL_FILE)

# 删除所有Unnamed开头的无效列
df = df.loc[:, ~df.columns.str.startswith('Unnamed')]

my_img = sg.Image(r'C:\Users\master\Desktop\WEB\PYTHON_PYSIMPLEGUI\logo.png')

menu_def = [['File', ['Exit']],['Help', 'About...'],]

layout = [
    [sg.Menu(menu_def)],
    [sg.Column([[my_img]], justification='center')],
    [sg.Text('Simacan ( SIstem Monitoring And Controling Absen Nilai')],
    [sg.Text('Nama', size=(15,1)), sg.InputText(key='Nama')],
    [sg.Text('Kehadiran', size=(15,1)), sg.Combo(['Hadir', 'Sakit', 'Tidak Masuk'], key='Keterangan')],
    [sg.Submit(), sg.Exit()]
]

window =sg.Window('Aplikasi Simacan versi 1.2', layout,size=(800, 600), font='Courier 12')

while True:
    event, values = window.read()
    if event == sg.WIN_CLOSED or event == 'Exit':
        break
    if event == 'Submit':
        # 替换已弃用的append方法,兼容高版本pandas
        new_row = pd.DataFrame([values])
        df = pd.concat([df, new_row], ignore_index=True)
        # 调整索引从1开始
        df.index = df.index + 1
        df.to_excel(EXCEL_FILE, index=True)
        sg.popup('Data saved !')
        print(event, values)

window.close()

兼容旧版pandas写法

如果你仍想使用原有的append语法,仅需修改Submit事件逻辑即可:

if event == 'Submit':
    df = df.append(values, ignore_index=True)
    # 调整索引从1开始
    df.index = df.index + 1
    df.to_excel(EXCEL_FILE, index=True)
    sg.popup('Data saved !')
    print(event, values)

内容的提问来源于stack exchange,提问作者Septo Suharyanto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 15:24:00