iOSアプリ開発の逆引き辞典

iPhone/iPadで使えるアプリ開発のTipsをまとめてみました

アプリ内リソースのExcelファイルやPDFファイルをUIWebViewで表示する

アプリ内リソースの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以降でサポートされているフォーマットってどこを調べればいいんだろう。