实现功能:使用PySide6进行工具开发,通过TableWidget选择某个单元格进行Ctrl+A全选再Ctrl+C复制后,打开excel选择某个sheet页签的某个单元格进行Ctrl+V,实现自动复制全表内容(包括列表头)。
难点:
(1)剪贴板格式:
使用制表符 (\t) 分隔列,使用换行符 (\n) 分隔行,确保 Excel 能够正确解析。
(2)处理单元格中的换行符:
在复制单元格内容时,将换行符 (\n) 替换为特殊标记(例如 |||),以避免 Excel 将其解释为单元格内的换行。
示例代码如下:

from PySide6.QtWidgets import QApplication, QTableWidget, QTableWidgetItem, QMainWindow
from PySide6.QtCore import Qt, QMimeData
class CustomTableWidget(QTableWidget):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
def keyPressEvent(self, event):
"""重写键盘事件"""
if event.key() == Qt.Key.Key_C and event.modifiers() == Qt.KeyboardModifier.ControlModifier:
self.copy_entire_table()
else:
super<

最低0.47元/天 解锁文章
318

被折叠的 条评论
为什么被折叠?



