前言
由于項目需要解析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項目
參考鏈接
http://m.itdecent.cn/p/95c88a7073a6
http://blog.csdn.net/qxuewei/article/details/51733142
著作權歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權,非商業(yè)轉(zhuǎn)載請注明出處。