QT QTableWidget 合并单元格,并填充单元格文本

    QStringList header1;
    header1<<"VT"<<"VF";
    ui->tableWidget->setHorizontalHeaderLabels(header1);
//    ui->tableWidget->setHorizontalHeaderItem(0,new QTableWidgetItem("VT"));
//    ui->tableWidget->setHorizontalHeaderItem(1,new QTableWidgetItem("VF"));
    ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);//行填充
    ui->tableWidget->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch);  //列填充
    ui->tableWidget->verticalHeader()->setVisible(false);   //表头不可见

    ui->tableWidget->setRowCount(1);
    ui->tableWidget->setColumnCount(2);

    ui->tableWidget->setSpan(0,0,1,2);                      //其参数为: 要改变单元格的   1行数  2列数     要合并的  3行数  4列数
    QTableWidgetItem  * newItem = new QTableWidgetItem;     //既然setSpan()函数破坏了itemAt()的索引,我们可以通过重新建立新的item的方式进行访问方法如下
    ui->tableWidget->setItem(0, 0, newItem);
    newItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
    newItem->setText("My");

要将具有合并单元格QTableWidget导出到Excel中,你需要使用`openpyxl`或`xlsxwriter`等Python库来创建Excel文档。你需要遍历每个单元格并将其值入Excel单元格中。 对于合并单元格,你需要将合并的单元格拆分为多个单元格,并将其值入每个单元格。 为了实现这个功能,你需要使用`QTableWidget::item(row, column)`方法获取单元格,然后使用`QTableWidget::rowSpan(row, column)`和`QTableWidget::columnSpan(row, column)`方法获取单元格的行和列跨度。 然后你需要使用`openpyxl`或`xlsxwriter`等库的API来将单元格的值入到Excel中。 以下是使用`openpyxl`库将QTableWidget导出到Excel的示例代码: ```python from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem from openpyxl import Workbook app = QApplication([]) table = QTableWidget() table.setRowCount(5) table.setColumnCount(3) # 设置合并单元格 table.setSpan(0, 1, 2, 1) # 填充单元格 for i in range(5): for j in range(3): item = QTableWidgetItem("({}, {})".format(i, j)) table.setItem(i, j, item) # 创建Excel文档 wb = Workbook() ws = wb.active # 单元格 for i in range(table.rowCount()): for j in range(table.columnCount()): item = table.item(i, j) if item is not None: row_span = table.rowSpan(i, j) col_span = table.columnSpan(i, j) for rs in range(row_span): for cs in range(col_span): cell = ws.cell(row=i+rs+1, column=j+cs+1) cell.value = item.text() # 保存Excel文档 wb.save('table.xlsx') app.exec_() ``` 在这个例子中,我们使用`openpyxl`库创建了一个Excel文档,并使用`QTableWidget::item(row, column)`方法获取每个单元格。 然后,我们使用`QTableWidget::rowSpan(row, column)`和`QTableWidget::columnSpan(row, column)`方法获取单元格的行和列跨度,并将单元格的值入Excel文档中。最后我们保存Excel文档。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值