前面网上找这个内容,没有找到,现在把实现方式与大家共享。
QList<QTableWidgetItem*> tableWidgetItem = ui->tableWidget->selectedItems();
if(tableWidgetItem.count()==0) //如果没有选择,返回
return;
//选择范围
int topRow ,buttomRow, leftColumn, rightColumn;
QList<QTableWidgetSelectionRange> tableSelectRange= ui->tableWidget->selectedRanges();
for(int i=0;i<tableSelectRange.count();i++)
{
topRow= tableSelectRange.at(i).topRow();
buttomRow=tableSelectRange.at(i).bottomRow();
leftColumn=tableSelectRange.at(i).leftColumn();
rightColumn=tableSelectRange.at(i).rightColumn();
}
//复制到cliptext
QString clipText;
for (int i=topRow;i<=buttomRow;i++) {
for (int j=leftColumn;j<=rightColumn;j++) {
QString text;
if( ui->tableWidget->item(i,j)!=nullptr )//这个很重要
text = ui->tableWidget->item(i,j)->text();
clipText.append(text);
clipText.append("\t");
}
clipText.chop(1);//删除末尾一个字符
clipText.append("\n");
}
QClipboard *clipboard = QApplication::clipboard();//复制到剪贴板,可以粘贴到excel
clipboard->setText(clipText );