彩票走势图

C++类库LibXL从Excel读取数据的教程

原创|使用教程|编辑:何跃|2022-01-06 11:10:16.467|阅读 1044 次

概述:这个例子从工作表的所有单元格中读取数据,检测单元格的类型并打印其数值。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

LibXL是一个轻量级的Excel类库,支持各类平台运行,如需使用先行点击这里下载:

下载LibXl

这个例子从工作表的所有单元格中读取数据,检测单元格的类型并打印其数值:

#include <iostream>
#include "libxl.h"

using namespace libxl;

int main() 
{
   Book* book = xlCreateBook();

   if(book->load(L"input.xls"))
   {
      Sheet* sheet = book->getSheet(0);
      if(sheet)
      {
         for(int row = sheet->firstRow(); row < sheet->lastRow(); ++row)
         {
            for(int col = sheet->firstCol(); col < sheet->lastCol(); ++col)
            {
               CellType cellType = sheet->cellType(row, col);
               std::wcout << "(" << row << ", " << col << ") = ";
               if(sheet->isFormula(row, col))
               {
                  const wchar_t* s = sheet->readFormula(row, col);
                  std::wcout << (s ? s : L"null") << " [formula]";
               }
               else
               {
                  switch(cellType) //数据处理
                  {
                     case CELLTYPE_EMPTY: std::wcout << "[empty]"; break;
                     case CELLTYPE_NUMBER:
                     {
                        double d = sheet->readNum(row, col);
                        std::wcout << d << " [number]";
                        break;
                     }
                     case CELLTYPE_STRING:
                     {
                        const wchar_t* s = sheet->readStr(row, col);
                        std::wcout << (s ? s : L"null") << " [string]";
                        break;        
                     }
                     case CELLTYPE_BOOLEAN:
                     {
                        bool b = sheet->readBool(row, col);
                        std::wcout << (b ? "true" : "false") << " [boolean]";
                        break;
                     }
                     case CELLTYPE_BLANK: std::wcout << "[blank]"; break;
                     case CELLTYPE_ERROR: std::wcout << "[error]"; break;
                  }
               }
               std::wcout << std::endl;
            }
         }
      }
   }
  // 为了应用的性能,记得释放资源呀
   book->release();
   return 0;
}


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP