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