qt 写入excel文件,打开后乱码问题

yingzizizizizizzz 2016-04-06 08:34:25

void ReportDialog::setCellValue(int row, int column, const QString &value){
QAxObject *pRange = pSheet->querySubObject("Cells(int,int)", row, column);
pRange->dynamicCall("Value", value);
}

这个向excel填写内容的函数。
setCellValue(1,1,"这就是这样");

结果是:

求大神指导
...全文
1167 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
小灸舞 2016-04-07
  • 打赏
  • 举报
回复
估计和楼主写入的编码有关

void WriteTest()
{
CoInitialize(NULL);
QAxObject *excel = new QAxObject();
excel->setControl("Excel.Application");
excel->dynamicCall("SetVisible (bool Visible)","false");
excel->setProperty("DisplayAlerts", false);
QAxObject *workbooks = excel->querySubObject("WorkBooks");//获取工作簿集合
workbooks->dynamicCall("Open (const QString&)", "C:/Users/dell/Desktop/aa.xlsx");
QAxObject *workbook = excel->querySubObject("ActiveWorkBook");//获取当前工作簿
QAxObject *worksheet = workbook->querySubObject("Worksheets(int)", 1);
QAxObject *range = worksheet->querySubObject("Cells(int,int)", 1, 1);
range->dynamicCall("Value", "这就是这样啊");
workbook->dynamicCall("SaveAs(const QString &)", QDir::toNativeSeparators("C:/Users/dell/Desktop/aa.xlsx"));
workbook->dynamicCall("Close()");
excel->dynamicCall("Quit()");
delete excel;
excel = NULL;
CoUninitialize();
}

赵4老师 2016-04-07
  • 打赏
  • 举报
回复
字符编码惹的祸? 对电脑而言没有乱码,只有二进制字节;对人脑才有乱码。啊 GBK:0xB0 0xA1,Unicode-16 LE:0x4A 0x55,Unicode-16 BE:0x55 0x4A,UTF-8:0xE5 0x95 0x8A

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧