<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      ;前言
      QAxObject最大的缺點是電腦必須安裝wps或者office才可以使用奧而且速度非常慢,

      QtXlsx不需要計算機安裝office就能對.xlsx文件進行操作,支持跨平臺,光速讀取數(shù)據(jù)

      xls最大只有65536行、256列

      xlsx可以有1048576行、16384列

      xlsx另存為xls 會丟失256列之后的數(shù)據(jù)

       



      #include "myxlsx.h"
      
      
      
      
      MyXlsx::MyXlsx( QString fileName)
      {
          mXlsx = new QXlsx::Document(fileName);
          mFileName = fileName;
      
      
          //標題單元格樣式
          mFormat.setFontSize(20);/*設(shè)置字體大小*/
          mFormat.setFontBold(true);//字體加粗
          mFormat.setHorizontalAlignment(QXlsx::Format::AlignHCenter);//橫向居中
          mFormat.setVerticalAlignment(QXlsx::Format::AlignVCenter);//縱向居中
          mFormat.setBorderStyle(QXlsx::Format::BorderDashDotDot);//邊框樣式
      }
      
      
      MyXlsx::~MyXlsx()
      {
          delete mXlsx;
          mXlsx = NULL;
      }
      
      
      
      
      QString MyXlsx::read(int row, int col)
      {
          // mXlsx->read(1,1); 讀取第一行第一列
          QVariant v = mXlsx->read(row,col);
          return v.toString();
      }
      
      
      
      
      /*
          //往sheet2 的row 1 列1 寫入123
          xlsx->write(1,1, QString::number(123));
          //往sheet2 的row 1 列2 寫入123
          xlsx->write(2,2, QString::number(123));
          xlsx->write(3,3, QString::number(123));
          xlsx->selectSheet("第1個sheet");
          xlsx->write(1,1, QString::number(123));*/
      void MyXlsx::write(int row, int col,QString data)
      {
          //往sheet 的row 1 列1 寫入123
          //xlsx->write(1,1, QString::number(123));
          mXlsx->write(row,col, data);
      }
      
      
      void MyXlsx::write(int row, int col, QString data, bool format=false)
      {
          if (format) {
              mXlsx->write(row,col, data,mFormat);
          } else {
              mXlsx->write(row,col, data);
          }
      }
      
      
      void MyXlsx::save()
      {
          mXlsx->save();
      }
      
      
      void MyXlsx::saveAs(QString fileName)
      {
          //bool ret = xlsx->saveAs(EXCEL_NAME); // 保存到EXCEL_NAME,如果已經(jīng)存在則覆蓋
          bool ret = mXlsx->saveAs(fileName);
          if(ret){
              qInfo() << "創(chuàng)建excel成功!";
          }
          else{
              qWarning() << "創(chuàng)建excel失敗!";
          }
      }
      
      
      
      
      /*
      
      
          // 添加第一個工作簿 sheet
          xlsx->addSheet("第1個sheet", AbstractSheet::ST_WorkSheet);
          xlsx->addSheet("第2個sheet", AbstractSheet::ST_WorkSheet);
      */
      void MyXlsx::addSheet(QString name)
      {
      
      
      
      
      
      
          //xlsx->addSheet("第1個sheet", AbstractSheet::ST_WorkSheet);
          mXlsx->addSheet(name, AbstractSheet::ST_WorkSheet);
      }
      
      
      void MyXlsx::selectSheet(QString name)
      {
          //xlsx->selectSheet("第1個sheet");
          if(!mXlsx->selectSheet(name))
          {
              //沒有這個工作簿則添加,此后基于這個新工作簿操作
              mXlsx->addSheet(name);
          }
      }
      
      
      /*
      
      
          工作簿重命名,注意 excel文件如果被打開,此時程序做的寫入命名等操作是無效的奧
      */
      void MyXlsx::renameSheet(QString oldName,QString newName)
      {
          //xlsx->renameSheet("第1個sheet","first sheet");
          mXlsx->renameSheet(oldName,newName);
      }
      
      
      //獲取當前工作簿行數(shù)
      int MyXlsx::rowCount()
      {
          //獲取指定工作簿有效行 列 start
          //QXlsx::Worksheet *workSheet = static_cast<QXlsx::Worksheet*>(mXlsx->sheet("first"));
          //       int row = workSheet->dimension().rowCount();
          //       int col = workSheet->dimension().columnCount();
          //獲取指定工作簿有效行 列 end
      
      
      
      
          QXlsx::Worksheet *worksheet = mXlsx->currentWorksheet();
          return worksheet->dimension().rowCount();
      }
      
      
      //獲取當前工作簿列數(shù)
      int MyXlsx::colCount()
      {
          QXlsx::Worksheet *worksheet = mXlsx->currentWorksheet();
          return worksheet->dimension().columnCount();
      }
      
      
      //合并單元格
      void MyXlsx::span(int row,int col,int row2,int col2)
      {
          //xlsxDocument.mergeCells(QXlsx::CellRange(3,1,3,3), tableTitleFormat);
          //合并第4行,第一列到第三列
          //mXlsx->mergeCells(QXlsx::CellRange(4,1,4,3));
          mXlsx->mergeCells(QXlsx::CellRange(row,col,row2,col2));
      }
      
      
      //打印當前工作簿內(nèi)容
      void MyXlsx::print()
      {
      
      
      
      
          for(int row = 0; row < 10; row++)
          {
              for(int col = 0; col < 10; col++)
              {
                  QVariant data = mXlsx->read(row+1, col+1);
                  if (!data.isNull()) {
                      qDebug()<< data.toString();
                  }
              }
          }
      }
      
      
      //測試數(shù)據(jù)
      void MyXlsx::testInsert()
      {
          for(int row = 0; row < 10; row++)
          {
              for(int col = 0; col < 10; col++)
              {
                  mXlsx->write(row+1, col+1,QString::number(row) + "," + QString::number(col));
              }
          }
      }
      
      
      posted on 2024-02-15 15:15  jk0011  閱讀(121)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 青青草原国产精品啪啪视频| 在线观看人成视频免费| 国产综合有码无码中文字幕| 庄浪县| 欧美亚洲综合久久偷偷人人| 欧美激情一区二区三区成人| 精品久久久久久无码中文野结衣| 熟女人妻aⅴ一区二区三区电影| av激情亚洲男人的天堂| 日本丰满少妇高潮呻吟| 国产一区二区三区av在线无码观看| 久久精品女人天堂av免费观看| 国内精品久久人妻无码网站| 亚洲AV成人片不卡无码| 国产伦精品一区二区亚洲| 中文字幕在线无码一区二区三区| 动漫AV纯肉无码AV电影网| 日韩大片高清播放器| 成年在线观看免费人视频| 平罗县| 国产精品亚洲二区在线看| 中文字幕国产日韩精品| 久久中文字幕无码专区| 日韩免费码中文在线观看| 国产中文字幕一区二区| 日本无遮挡吸乳视频| 国内精品伊人久久久影视| 久久国产免费观看精品3| 玩弄少妇人妻| 亚洲男人av天堂久久资源| 大地资源免费视频观看| 99久久婷婷国产综合精品青草漫画| 欧美亚洲h在线一区二区| 精品国产成人国产在线视| 青草视频在线观看视频| 日韩av裸体在线播放| 又黄又无遮挡AAAAA毛片| av新版天堂在线观看| 奶头好大揉着好爽视频| 亚洲另类激情专区小说图片| 日本边添边摸边做边爱喷水|