本文介绍了QT下BasicExcel库初体验,实现对表格数据的操作的过程,很简单的操作。请看一下详细内容。

本文介绍了QTBasicExcel库初体验,BasicExcel是一个很好的读取excel的库,对于做小程序来说很方便,作为一个初学者,现在来初步讨论一下对于这个库的使用。

BasicExcel的下载地址:http://www.codeproject.com/KB/office/BasicExcel.aspx 同时还附有BasicExcel的库函数。

首先建立一个工程,取名为QTexcel,在这里使用的方法是widget。将下载的压缩包里的文件解压出来,并且在工程里包含BasicExcel.hpp和BasicExcel.cpp这两个文件。如图是工程结构图。

QT下BasicExcel库初体验(qtexcel开源库)  QT BasicExcel 第1张

在此我们做一些初始化的工作。

1、在widget.h 中加入 #include "BasicExcel.hpp" ;

2、在widget.cpp 中加入 #include <QDebug>;

  1. usingnamespaceYExcel;//这个很重要,因为这个导致了很多错误

using namespace YExcel; //这个很重要,因为这个导致了很多错误

在窗口中放置一个pushbutton,右键点击选择"go to slot.",在widget.cpp里面的自动产生的函数里面写上如下代码:

  1. viewplaincopytoclipboardprint?voidWidget::on_pushButton_clicked(){
  2. BasicExcele;
  3. BasicExcelWorksheet*sheet1;
  4. e.Load("D:/fox.xls");
  5. sheet1=e.GetWorksheet("Sheet1");
  6. if(sheet1){
  7. size_tmaxRows=sheet1->GetTotalRows();
  8. size_tmaxCols=sheet1->GetTotalCols();
  9. qDebug()<<"Dimensionof"<<sheet1->GetAnsiSheetName()<<
  10. "("<<maxRows<<","<<maxCols<<")"<<endl;
  11. printf("");
  12. for(size_tc=0;c<maxCols;++c)printf("%10d",c+1);
  13. qDebug()<<endl;
  14. for(size_tr=0;r<maxRows;++r){
  15. qDebug()<<("%10d",r+1);
  16. for(size_tc=0;c<maxCols;++c){
  17. BasicExcelCell*cell=sheet1->Cell(r,c);
  18. switch(cell->Type())//选择输出的格式{
  19. caseBasicExcelCell::UNDEFINED:
  20. qDebug()<<("");
  21. break;
  22. caseBasicExcelCell::INT:
  23. qDebug()<<("%10d",cell->GetInteger());
  24. break;
  25. caseBasicExcelCell::DOUBLE:
  26. qDebug()<<("%10.6lf",cell->GetDouble());
  27. break;
  28. caseBasicExcelCell::STRING:
  29. qDebug()<<("%10s",cell->GetString());
  30. break;
  31. caseBasicExcelCell::WSTRING:
  32. qDebug()<<(L"%10s",cell->GetWString());
  33. break;
  34. }
  35. }
  36. qDebug()<<endl;
  37. }
  38. }
  39. }
  40. voidWidget::on_pushButton_clicked()
  41. {
  42. BasicExcele;
  43. BasicExcelWorksheet*sheet1;
  44. e.Load("D:/fox.xls");
  45. sheet1=e.GetWorksheet("Sheet1");
  46. if(sheet1)
  47. {
  48. size_tmaxRows=sheet1->GetTotalRows();
  49. size_tmaxCols=sheet1->GetTotalCols();
  50. qDebug()<<"Dimensionof"<<sheet1->GetAnsiSheetName()<<
  51. "("<<maxRows<<","<<maxCols<<")"<<endl;
  52. printf("");
  53. for(size_tc=0;c<maxCols;++c)printf("%10d",c+1);
  54. qDebug()<<endl;
  55. for(size_tr=0;r<maxRows;++r)
  56. {
  57. qDebug()<<("%10d",r+1);
  58. for(size_tc=0;c<maxCols;++c)
  59. {
  60. BasicExcelCell*cell=sheet1->Cell(r,c);
  61. switch(cell->Type())//选择输出的格式
  62. {
  63. caseBasicExcelCell::UNDEFINED:
  64. qDebug()<<("");
  65. break;
  66. caseBasicExcelCell::INT:
  67. qDebug()<<("%10d",cell->GetInteger());
  68. break;
  69. caseBasicExcelCell::DOUBLE:
  70. qDebug()<<("%10.6lf",cell->GetDouble());
  71. break;
  72. caseBasicExcelCell::STRING:
  73. qDebug()<<("%10s",cell->GetString());
  74. break;
  75. caseBasicExcelCell::WSTRING:
  76. qDebug()<<(L"%10s",cell->GetWString());
  77. break;
  78. }
  79. }
  80. qDebug()<<endl;
  81. }
  82. }
  83. }

即可在控制台看见输出的数据。

小结:本文介绍了QTBasicExcel库初体验,内容介绍到这,通过以上操作,是不是很好实现。希望以上内容能帮你解决问题。

转载请说明出处
知优网 » QT下BasicExcel库初体验(qtexcel开源库)

发表评论

您需要后才能发表评论