学无先后,达者为师

网站首页 编程语言 正文

QAobject修改excel字体乱码问题

作者:@┐(─__─)┌@ 更新时间: 2024-03-13 编程语言

一.问题

本来想用下面的代码修改excel表格字体为“宋体”,但是发现生成的excel上面的格式显示乱码

QAxObject* range = sheet->querySubObject("Range(const QString&)", rangeString);
// 获取单元格的字体对象  
QAxObject* font = range->querySubObject("Font");
font->setProperty("Name", QStringLiteral("宋体"));     //设置单元格字体

                      

二.寻找方法

        一开始以为是字符不是utf-8,尝试转成utf-8传入,发现更奇怪了,变成数字了

font->setProperty("Name", QStringLiteral("宋体").toUtf8());     //设置单元格字体

                   

       尝试传入英文,发现结果却是正常的

font->setProperty("Name", QStringLiteral("Microsoft YaHei"));     //设置单元格字体

                    

       尝试qdebug打印,结果发现正常传入“宋体”打印正常,打印QStringLiteral("宋体")乱码

font->setProperty("Name", QStringLiteral("宋体"));     //设置单元格字体
qDebug() << "宋体"<<endl;
qDebug() << QStringLiteral("宋体") << endl;

三.解决方法

      正常传入“宋体”

QAxObject* range = sheet->querySubObject("Range(const QString&)", rangeString);
// 获取单元格的字体对象  
QAxObject* font = range->querySubObject("Font");
font->setProperty("Name","宋体");     //设置单元格字体

原文链接:https://blog.csdn.net/m0_66178424/article/details/136607548

  • 上一篇:没有了
  • 下一篇:没有了
栏目分类
最近更新