web-dev-qa-db-ja.com

JQueryでExcelデータを読み取る

マルチワークシートのMS Excel 2003ファイルからデータを読み取る方法を知りたいのは、jqueryだけです。 PHP/JQuery、ActiveXなどのいくつかのソリューションを読みましたが、JQuery ONLYでそれを実行したいと思います。これがどのように機能するかについての考えはありますか?

私は http://plugins.jquery.com/project/csv2table を見つけました。これは、各シートをCSVファイルに分割する必要があるという事実を除いて、ほぼ完璧に機能します。そのステップを削除して、Excelファイルから直接読み取ります。よろしくお願いします!

BTW-私はFireFox 4で作業しており、クロスブラウザーのサポートは必要ありません。

16
Robert Fleming

Office Webコンポーネントは、javascript(またはvb)を介してAPIをExcelドキュメントに提供します。それらは十分に文書化されていませんが、イントラネットタイプのアプリケーションでは、仕事をこなすことができます。 IE6のピボットテーブル機能に使用しており、Firefoxで動作するかどうかはわかりません。

http://en.wikipedia.org/wiki/Office_Web_Components

http://www.Microsoft.com/downloads/en/details.aspx?FamilyID=beb5d477-2100-4586-a13c-50e56f101720&DisplayLang=en

8
jason saldo

実際には、OWCやそのようなエキゾチックなアドインがなくても可能ですが、手動での作業が必要になります。別のこと-ローカルマシンでのみ実行可能-ワークシートがWebサーバーのように機能することを期待しないでください。もう1つの可能性は、ネットワーク共有に設定することですが、サンドボックスでどのように機能するかはわかりません。

EDIT:質問はExcel 2003形式に関するものでした。ただし、同じ機能についてのGoogleクエリはまだあり、今日の人々はMS Officeバージョン2010/2013を使用しています。だから、私はその答えが読者にとって有益であると信じています。

だから、ここにあります:

  1. Zip.js を使用すると、zipファイルを開くことができます。つまり、Office 2007以降のMS Officeファイル(.docx、.xlsxなど)を開くことができます。古いOfficeファイルにはカスタム形式があり、zipファイルとして読み取ることはできません
  2. ファイルを開くと、さまざまなファイルを含む階層フォルダー構造が使用可能になります。データ自体は_/xl/worksheets/[worksheet name].xml__/xl/sharedStrings.xml_にあります。これは、 XMLパーサーおよびその後の相関。
  3. 幸い、XMLパーサーはjQueryで使用できます:$.parseXML('...')

楽しんで ;)

私はこの質問が古いことに気づきましたが、私はあなたが求めているほとんどのことをサポートする基本的なパーサーを持っています: http://oss.sheetjs.com/js-xls/

3
SheetJS

Npm WebサイトにあるnodeJSのツール(ライブラリ)がいくつかあります。 xlsxファイルを読み取るExcelと呼ばれるものと、ほとんどのms officeファイル用にofficeと呼ばれるものがあります。いずれにせよすべてJavascriptなので、ダウンロードしてソースをチェックアウトし、クライアント側に統合する方法を見つける必要があります。それが役に立てば幸い

0
Naman Goel