非常抱歉,我之前的回答有误。根据你的要求,我们可以使用`os.path.basename`函数获取xlsx文件名,并将其作为汇总表中每个sheet的名称。以下是修改后的代码:
import os
from PySide6.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QFileDialog
from openpyxl import load_workbook
class AssetManagementSystem(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("资产管理系统")
layout = QVBoxLayout()
self.button = QPushButton("选择xlsx文件")
self.button.clicked.connect(self.choose_file)
layout.addWidget(self.button)
self.setLayout(layout)
def choose_file(self):
file_dialog = QFileDialog()
file_path, _ = file_dialog.getOpenFileName(self, "选择xlsx文件", "", "Excel files (*.xlsx)")
if file_path:
self.update_summary_table(file_path)
def update_summary_table(self, file_path):
workbook = load_workbook(file_path)
sheet_name = os.path.basename(file_path).split('.')[0] # 获取文件名并去除扩展名
summary_workbook = load_workbook("汇总表.xlsx")
if sheet_name in summary_workbook.sheetnames:
summary_workbook.remove(summary_workbook[sheet_name])
summary_sheet = summary_workbook.create_sheet(sheet_name)
for sheet in workbook.sheetnames:
source_sheet = workbook[sheet]
target_sheet = summary_sheet.copy_worksheet(source_sheet)
target_sheet.title = sheet
summary_workbook.save("汇总表.xlsx")
if __name__ == "__main__":
app = QApplication([])
window = AssetManagementSystem()
window.show()
app.exec()
这段代码会弹出一个窗口,你可以通过点击按钮来选择要处理的xlsx文件。当你选择了一个文件后,程序会将该文件的全部sheet添加到名为“汇总表.xlsx”的工作簿中,每个sheet都将作为一个单独的工作表。请确保在运行程序之前已经创建了一个名为“汇总表.xlsx”的空白工作簿。
希望这次回答对你有帮助!如果还有其他问题,请随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |