PySide6中如何实现TableWidget跨行列粘贴Excel表格内容

实现功能:使用PySide6进行工具开发,通过TableWidget实现跨行列粘贴Excel表格内容。列数是固定的(因为列标题是固定的),而只根据粘贴内容动态增加行数。如果粘贴的内容超出表格列范围,超出的部分会被忽略。

难点:在 PySide6 中,QTableWidget 默认不支持跨行或跨列粘贴内容。要实现跨行列粘贴功能,需要自定义粘贴逻辑。可以通过重写 QTableWidget 的 dropEvent 或 paste 方法来实现。

示例代码如下:

在这里插入图片描述

from PySide6.QtWidgets import QApplication, QTableWidget, QTableWidgetItem, QMainWindow, QMenu
from PySide6.QtCore import Qt, QMimeData

class CustomTableWidget(QTableWidget):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        # 启用拖放和粘贴功能
        self.setAcceptDrops(True)
        self.setSelectionMode(QTableWidget.SelectionMode.ContiguousSelection)

    def paste(self):
        """重写粘贴方法,支持从 Excel 复制的内容"""
        clipboard = QApplication.clipboard()
        mime_data = clipboard.mimeData()

        if mime_data.hasText():
            # 获取剪贴板中的文本内容
            text = mime_data.text()
            # 按行分割(Excel 复制的内
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

草莓仙生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值