如何通过Qt设置excel列格式?
我想将一些电话号码写入excel文件,其中一些以0开头(如02167820096)。 我尝试将该列的NumberFormatLocal属性设置为字符串类型:如何通过Qt设置excel列格式?,excel,qt,Excel,Qt,我想将一些电话号码写入excel文件,其中一些以0开头(如02167820096)。 我尝试将该列的NumberFormatLocal属性设置为字符串类型: QAxObject* col=worksheet->querySubObject("Columns(int)",1); if (!col) { qDebug()<<"col is NULL"; } qDebug()<
QAxObject* col=worksheet->querySubObject("Columns(int)",1);
if (!col)
{
qDebug()<<"col is NULL";
}
qDebug()<<"col 1 NumberFormatLocal:"<<col->property("NumberFormatLocal").toString();
col->setProperty("NumberFormatLocal","@");
qDebug()<<"col 1 NumberFormatLocal:"<<col->property("NumberFormatLocal").toString();
我可以看到第1列中的单元格确实设置为字符串类型(“@”)
但是,当我打开保存的excel文件时,其中的所有单元格都标记为常规类型,代码根本不起作用
救命啊!谢谢…好的,我解决了这个问题。因为我安装了Office2007,“保存”功能将以2007格式保存文件,但我将其保存到“*.xls”,某些格式无法正确识别 因此,解决方案是,使用“SaveAs”将excel保存为2003格式
QList<QVariant> lstParam;
qDebug()<<QDir::toNativeSeparators(file_path);
lstParam.append(QDir::toNativeSeparators(file_path));
lstParam.append(-4143);
lstParam.append("");
lstParam.append("");
lstParam.append(false);
lstParam.append(false);
lstParam.append(1);
lstParam.append(2);
lstParam.append(false);
lstParam.append(false);
lstParam.append(false);
lstParam.append(false);
QVariant res = workbook->dynamicCall("SaveAs(QVariant, QVariant, QVariant, QVariant, QVariant, QVariant, QVariant, QVariant, QVariant, QVariant, QVariant, QVariant)", lstParam);
if(res.toBool())
{
qDebug()<<"SaveAs successful";
}
QList-lstParam;
qDebug()我也试过:range->dynamicCall(“SetNumberFormatLocal(constqvariant&)”,QVariant(“@”);但它也不起作用…range->clear()代码>为什么清除范围?我想释放资源。我也试着没有这个表达,没有区别。。。
QAxObject * range = worksheet->querySubObject("Cells(int,int)", 1, 1);
if (!range)
{
qDebug()<<"range does not exist";
}
QVariant tel=QString("%1").arg(record["tel"].toString()); //tel is 02167820096
//qDebug()<<tel;
//range->dynamicCall("SetValue(const QVariant&)", tel);
qDebug()<<"NumberFormatLocal:"<<range->property("NumberFormatLocal").toString();
qDebug()<<"NumberFormat:"<<range->property("NumberFormat").toString();
range->setProperty("Value", tel.toString());
range->clear();
NumberFormatLocal: "@"
NumberFormat: "@"
QList<QVariant> lstParam;
qDebug()<<QDir::toNativeSeparators(file_path);
lstParam.append(QDir::toNativeSeparators(file_path));
lstParam.append(-4143);
lstParam.append("");
lstParam.append("");
lstParam.append(false);
lstParam.append(false);
lstParam.append(1);
lstParam.append(2);
lstParam.append(false);
lstParam.append(false);
lstParam.append(false);
lstParam.append(false);
QVariant res = workbook->dynamicCall("SaveAs(QVariant, QVariant, QVariant, QVariant, QVariant, QVariant, QVariant, QVariant, QVariant, QVariant, QVariant, QVariant)", lstParam);
if(res.toBool())
{
qDebug()<<"SaveAs successful";
}