私はファイルをエクセルするためにいくつかの電話番号を書きたいです、それらのいくつかは0で始まります(02167820096のように)。その列のNumberFormatLocalプロパティを文字列型に設定しようとしています。
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();
出力は
col 1 NumberFormatLocal: "G/通用格式"
col 1 NumberFormatLocal: "@"
1列目のセルが実際に文字列型( "@")に設定されていることがわかります。
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: "@"
しかし、保存したExcelファイルを開くと、その中のすべてのセルが一般的なタイプとしてマークされ、コードがまったく機能しませんでした。
ヘルプ!ありがとう...