アプリ内リソースのExcelファイルやPDFファイルをUIWebViewで表示する
iPhoneには標準でエクセルファイルを見る事が出来ます。メールで受信したExcelファイルを読んだ事は、おそらくiPhoneを使っている人なら1度はあると思います。
つい最近、これはUIWebViewを使って実装されていると知って驚きを隠せませんでした。何故WebViewで・・・当然同じ事を自分のアプリでも行うことが出来ます。こんなExcelファイルを実際にiPhoneで表示させてみましょう。
「text.xls」という名前のエクセルファイルをリソースに追加した上で、UIWebViewにファイルのパスを渡すだけです。viewDidAppearとかで以下のコードを実行してください。
NSBundle *bundle [NSBundle mainBundle]; NSString *path = [bundle pathForResource:@"test.xml" ofType:nil]; NSURL* url = [NSURL fileURLWithPath:path]; [webView loadRequest:[NSURLRequest requestWithURL:url]];
上記のコードを実行してみました。
PDFや他のフォーマットのファイルも同じ要領で表示する事が可能です。以下はPDFファイルを表示させているところ。
レンダリングエンジンの性能か癖かわからないけど、完全にWindows版で見るExcelとはやっぱり差が出てしまう様です。
UIWebViewで表示可能なドキュメントの種類
実際にPDFとエクセルを表示してみましたが、公式にどこまで対応が約束されているのか調べてみました。
iPhone OS 2.2.1以降でサポートされている形式
- Excel (.xls)
- Keynote (.key.zip)
- Numbers (.numbers.zip)
- Pages (.pages.zip)
- PDF (.pdf)
- Powerpoint (.ppt)
- Word (.doc)
iPhone OS 3.0以降でサポートされている形式
- Rich Text Format (.rtf)
- Rich Text Format Directory (.rtfd.zip)
- Keynote '09 (.key)
- Numbers '09 (.numbers)
- Pages '09 (.pages)
一応、公式回答( http://developer.apple.com/library/ios/#qa/qa2008/qa1630.html )で見たのを抽出してみたけど、iOS4以降でサポートされているフォーマットってどこを調べればいいんだろう。