IOS 通过Objective-C读取、解析Excel
显示Excel我就不介绍了,大多人都知道使用UIWebView控件即可,所以直接上代码
// // ViewController.m // PRJ_excelDemo // // Created by wangzhipeng on 13-4-12. // Copyright (c) 2013年 com.comsoft. All rights reserved. // #import "ViewController.h" @interface ViewController () @property (strong, nonatomic) IBOutlet UIWebView *pWV_main; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. [_pWV_main setClipsToBounds:YES]; [_pWV_main setScalesPageToFit:YES]; //Document路径下 // NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); // NSString *documentsDirectory = [paths objectAtIndex:0]; //项目路径下 NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"wangzhipeng.xlsx"]; NSURL *url = [NSURL fileURLWithPath:path]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; [_pWV_main loadRequest:request]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end
问题是我目前开发的项目需求是获取.xlsx中的内容
于是我想起来了,UIWebView能加载说明它获取到了.xlsx内容,我就想通过JS来获取UIWebView的内容
NSString *pStr_js = @"document.documentElement.innerHTML"; NSString *pStr_html = [_pWV_main stringByEvaluatingJavaScriptFromString:pStr_js]; NSLog(@"%@", pStr_html);
结果竟然是:
2013-04-12 16:59:01.418 PRJ_excelDemo[4195:11303] <head></head><body></body>
好吧,我傻了...
我在谷歌上搜查了半天,但我似乎无法找到通过Objective-C来读取Excel文件的方法。
我觉得唯一的可行的解决方案是Excel先转换为CSV,然后读取一个文本文件,但我不希望出现这种情况,太麻烦。
解决方案:
最后在 StackOverFlow的问题 从这个问题中找寻的相关解决方法,用到的 libxls 库和 DHlibxls 框架。
主要是 DHlibxls ,个人认为是最底层是libxls库,而DHlibxls对libxls 进行了一次封装,使得在IOS中更好用了。
以下是相关的DHlibxls 的下载,DHlibxls这个是已经把libxls 库添加到该项目中了,可以直接点击
TestDHlibxls.xcodeproj 查看使用方法 .
源码下载地址:http://ishare.iask.sina.com.cn/f/36736718.html