|

楼主 |
发表于 2024-3-19 19:20:45
|
显示全部楼层
import pandas as pd
from openpyxl import load_workbook
from PySide6.QtWidgets import QApplication, QMainWindow, QLabel, QComboBox, QMessageBox, QPushButton
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("工作簿格式转换")
self.setGeometry(100, 100, 400, 300)
self.file_combo = QComboBox(self)
self.file_combo.setGeometry(50, 50, 300, 30)
self.sheet_combo = QComboBox(self)
self.sheet_combo.setGeometry(50, 100, 300, 30)
self.column_combo = QComboBox(self)
self.column_combo.setGeometry(50, 150, 300, 30)
self.format_combo = QComboBox(self)
self.format_combo.setGeometry(50, 200, 300, 30)
self.convert_button = QPushButton("转换", self)
self.convert_button.setGeometry(150, 250, 100, 30)
self.convert_button.clicked.connect(self.convert)
self.load_files()
self.file_combo.currentIndexChanged.connect(self.load_sheets)
self.sheet_combo.currentIndexChanged.connect(self.load_columns)
def load_files(self):
self.file_combo.clear()
# 在这里根据用户输入的文件后缀来加载文件
# 这里只是示例,假设用户输入的后缀为".xls"
filenames = ["file1.xls", "file2.xls", "file3.xls"]
self.file_combo.addItems(filenames)
def load_sheets(self):
self.sheet_combo.clear()
# 在这里读取用户指定文件的所有sheet名
filename = self.file_combo.currentText()
sheets = pd.read_excel(filename, sheet_name=None).keys()
self.sheet_combo.addItems(sheets)
def load_columns(self):
self.column_combo.clear()
# 在这里读取用户指定sheet的所有列名称
filename = self.file_combo.currentText()
sheetname = self.sheet_combo.currentText()
df = pd.read_excel(filename, sheet_name=sheetname)
columns = df.columns.tolist()
self.column_combo.addItems(columns)
def convert(self):
# 获取用户选择的转换后的单元格格式
format_str = self.format_combo.currentText()
# 在这里进行格式转换并写入到转换后列中
filename = self.file_combo.currentText()
sheetname = self.sheet_combo.currentText()
column_name = self.column_combo.currentText()
df = pd.read_excel(filename, sheet_name=sheetname)
# 进行单元格格式转换,假设将所有数据转换为文本格式
df["转换后列"] = df[column_name].astype(str)
# 使用openpyxl库来保存格式转换后的数据
with pd.ExcelWriter(filename, engine="openpyxl") as writer:
writer.book = load_workbook(filename)
df.to_excel(writer, sheet_name=sheetname, index=False)
QMessageBox.information(self, "转换成功", "格式转换成功!")
if __name__ == "__main__":
app = QApplication([])
window = MainWindow()
window.show()
app.exec()
这段代码报错:
Traceback (most recent call last):
File "D:\Python\pythonProject\Xtt_xls\Excel_Change.py", line 1, in <module>
import pandas as pd
File "D:\Python\pythonProject\.venv\Lib\site-packages\pandas\__init__.py", line 29, in <module>
raise ImportError(
ImportError: Unable to import required dependencies:
numpy: Error importing numpy: you should not try to import numpy from
its source directory; please exit the numpy source tree, and relaunch
your python interpreter from there.
|
|