IOS解析Excel(xlsx, xls,csv)

前言

由于項目需要解析excel,在網(wǎng)上找了很久,都沒有找到一個齊全的輪子,所以我修改和整合了網(wǎng)上的解析excel教程。

教程介紹

1.解析csv

  • CSV:
    即逗號分隔值,其文件以純文本形式存儲表格數(shù)據(jù)(數(shù)字和文本)。
  • 解析思路:
    讀取該文件,根據(jù)\n和,來解析出excel數(shù)據(jù)
    \n用來區(qū)分excel的行
    ,用來區(qū)分excel的列

2.解析 xls:

  • xls
    就是 Microsoft Excel 工作表,是一種非常常用的電子表格格式。
  • 解析思路
    通過DHxlsReader框架來實現(xiàn)解析

3.解析xlsx

  • xlsx
    即Microsoft Office EXCEL 2007/2010/2013/2016文檔的擴展名
  • 解析思路
    07版之后的excel基本都是xlsx格式的,其本質(zhì)上其實是一個壓縮文件,打開之后是一個文件夾,如下圖
1.png
2.png

我們來分析一下這個文件夾的結構;shareString是一個公共的字符串池,相當于,給我們表中字符串貼上一個標簽一樣.然后我們先分析一下shareString.xml里面的內(nèi)容


3.png

下面來解析worksheet中sheet1.xml


4.png

然后就這樣循環(huán)的查下去,把你需要的內(nèi)容查找出來

  • 具體做法
    • 解壓縮,用第三方庫SSZipArchive,需導入libz.tbd庫
    • xml解析xl下的workbook.xml文件查詢到底有幾個sheet文件
    • 解析sheet中的數(shù)據(jù),得到具體值在sharedStrings.xml中的索引,
    • 封裝數(shù)據(jù),返回其中已經(jīng)有多線程了,不必自添加多線程執(zhí)行此任務

教程安裝和使用

  • 把ExcelParser文件夾拷貝的項目里面
  • 導入libiconv.2.dylib和libz.tbd,
    libiconv.2.dylib添加的時候可能要注意一點,要點加號,Add Other...,然后command+shift+g, 輸入/usr/lib/ ,你就可以找到了.
  • 設置header search Path
    因為DHxlsReader中用到了C的庫,所以你的頭文件要加上下圖所示.
5.png
  • 添加 .PCH文件
    否則會提示 NSObjct沒找到
    創(chuàng)建一個ExcelDemoDHlibxls-Prefix.pch文件 ,文件內(nèi)容如下
//
// Prefix header for all source files of the 'TestDHlibxls' target in the 'TestDHlibxls' project
//

#import <Availability.h>

#ifndef __IPHONE_4_0
#warning "This project uses features only available in iOS SDK 4.0 and later."
#endif

#ifdef __OBJC__
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
#endif

修改Precompile Prefix Headers 為 yes
添加.pch文件路徑到Prefix Header 如下圖


E31850E5-5B2C-4C54-B097-3091B9B04E25.png
  • clean項目
  • build項目

Demo地址


參考鏈接

http://m.itdecent.cn/p/95c88a7073a6

http://blog.csdn.net/qxuewei/article/details/51733142


著作權歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權,非商業(yè)轉(zhuǎn)載請注明出處。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容