当前位置:   article > 正文

Qt 设置Excel单元格文本属性_qt5 excel 设置单元的类型

qt5 excel 设置单元的类型

前段时间通过Qt设置Excel的内容,每次设置 1-3 这种内容的时候,会被Excel自动转为日期格式。

后来查了一下,可以设置单元格为文本属性,显示内容与输入内容保持一致。

需要先设置单元格的格式再设置单元格中的内容,否则1-3还是会被转为日期格式。

  1. QAxObject *t_excel = new QAxObject; //连接Excel控件
  2. QAxObject *t_workBooks; //获取工作簿集合
  3. QAxObject *t_workBook; //获取当前工作簿
  4. QAxObject *t_workSheets; //获取工作表集合
  5. QAxObject *t_workSheet1; //获取工作表集合的工作表Sheets1
  6. QAxObject *t_cell; //获取cell的值
  7. //连接Excel控件,如果没有office,就用WPS
  8. if (t_excel->setControl("Excel.Application"))
  9. {
  10. }
  11. else
  12. {
  13. t_excel->setControl("ket.Application");
  14. }
  15. t_excel->dynamicCall("SetUserControl(bool UserControl)", true); //用户启动程序
  16. t_excel->dynamicCall("SetVisible (bool Visible)", "false"); //不显示窗体
  17. t_excel->setProperty("DisplayAlerts", false); //关闭提示和警告消息
  18. t_workBooks = t_excel->querySubObject("WorkBooks");
  19. t_workBooks->dynamicCall("Add");//工作薄集合中添加工作薄
  20. t_workBook = t_excel->querySubObject("ActiveWorkBook");
  21. t_workSheets = t_workBook->querySubObject("Sheets");
  22. t_workSheet1 = t_workSheets->querySubObject("Item(int)", 1); //工作表1
  23. t_workSheet1->setProperty("Name", "Sheets1"); //设置工作表1名称为Sheets1
  24. int t_colCount = 5; //5列
  25. int t_rowCount = 5; //5行
  26. //设置单元格属性
  27. QString merge_cell;
  28. merge_cell.append(QChar('A')); //初始列
  29. merge_cell.append(QString::number(1)); //初始行
  30. merge_cell.append(":");
  31. merge_cell.append(QChar(t_colCount - 1 + 'A')); //终止列
  32. merge_cell.append(QString::number(t_rowCount + 1)); //终止行
  33. QAxObject *merge_range = t_workSheet1->querySubObject("Range(const QString&)", merge_cell);
  34. merge_range->setProperty("NumberFormat", "@"); //设置所有单元格为文本属性
  35. //写入数据到excel表格
  36. for (int i = 0; i < t_colCount; i++)
  37. {
  38. for (int j = 0; j < t_rowCount; j++)
  39. {
  40. QString t_strData = "NULL";
  41. // 获取excel表格中的单元格索引,以(1, 1)为起点
  42. t_cell = t_workSheet1->querySubObject("Cells(int, int)", j + 1, i + 1);
  43. // 写入数据到excel中的单元格
  44. t_cell->dynamicCall("SetValue(const QString&)", t_strData);
  45. }
  46. }
  47. QFile t_file(t_filePath);
  48. t_workBook->dynamicCall("SaveAs(const QString&)", QDir::toNativeSeparators(_filePath));
  49. t_workBook->dynamicCall("Close()", false);
  50. t_excel->dynamicCall("Quit()");
  51. //关闭
  52. delete t_excel;
  53. t_excel = NULL;

 

先设置单元格格式再设置内容!

还有其他几种单元格的数字格式

Excel VBA中的.NumberFormat选项是什么? - IT屋-程序员软件开发技术分享社区

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/170531
推荐阅读
相关标签
  

闽ICP备14008679号