QT学习二:读取表格数据后修改替换指定位置数据的两种方法

本文介绍了如何使用QTQAxObject读取Excel数据后,进行修改的方法。包括修改整行数据和指定位置的数据。通过QList<QList<QVariant>>数据模型,演示了替换整行数据的不便,并展示了使用QList的operator[]方法更高效地修改特定位置数据的操作。

目录

方法一:修改指定的整行数据

方法二:修改指定位置的数据


前篇《利用QT QAxObject读取Excel表格数据的两种方法比较》介绍到QT一次性读取 Excel表格数据并显示的方法,主要是构建一个数据模型 QList<QList<QVariant> > 用于存放表格数据。

实际应用中,我们读取Excel表格数据并显示的目的主要是为了便于修改数据,可视化数据

那么这些读取到的数据该如何进行必要的修改呢?


QList< QList<QVariant> >  datas;//构建数据模型用于存储数据
qDebug()<<datas.size(); //表格的总行数
qDebug()<<datas.at(0).size(); //第一行的列数
for (int a=0;datas.size()>a ;a++ ) 
{
   for (int b=0;datas.at(a).size()>b ;b++ ) 
   {
      qDebug() << QString(datas.at(a).at(b).toByteArray()); //打印所有数据
   }

方法一:修改指定的整行数据

我们知道QList<QList<QVariant> >数据模型的原型是QList(const QList<T> &),因此可以通过修改QList<T>的变量Qvariant而修改整行数据

QVariant var="replace_data1";
QList<QVariant> rows={var,"replace_data2"};//第一种赋值方法
// rows<<"replace_data1"<<"replace_data2";//第二种赋值方法
datas.replace(0,rows);//替换第1行数据为“replace_data1”“replace_data2”

但是这样显然非常不人性化!

一次性修改的是整行数据,而我们往往只需要修改某个特定位置的数据,每次修改要重新赋值整行数据非常繁琐。

那么有什么技巧呢?

方法二:修改指定位置的数据

QList成员列表里面有一个成员T &QList::operator[](int i)提供了快捷修改特定位置数据的方法。

 

 



T &QList::operator[](int i)

Returns the item at index position i as a modifiable reference. i must be a valid index position in the list (i.e., 0 <= i < size()).

以上意思是返回 一个指定位置int i可供修改QList元素的映射

修改QList< QList<QVariant> >中的第row个QList<QVariant> 中的第col个QVariant为“replace_data”

int row=0,col=0;//row行,col列
datas.operator[](row).replace(col,"replace_data");//修改第1行第1列数据为replace_data

综上,第一种方法适合修改整行数据,第二种方法适合修改指定位置数据。

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值