2016-01-16 2 views
6

"xlmanip"と呼ばれるMS Excel(tm)スプレッドシートを読み込むためのCLライブラリを作成しています(まだプライムタイムには対応していません - "xlsx"スプレッドシートのみを読み込み、80%ZIPコンテンツはグレーストリームとして表示されますか?

"xlsx"(XML形式のZIPアーカイブ)を読んでいるときに心配しているのは、現在のZIP処理ライブラリCommon Lisp ZIPが圧縮されたコンテンツを次のようにアンパックすることです。 a 。大きなスプレッドシートの場合、エンドユーザーに問題が発生します。

私が考えてきた1つの代替案は、遅延ロードです。必要に応じて効果的にワークシートを要求するクロージャを使用してください。しかし、それは必然的に遅れているだけです。

(潜在的に大きい)(vector (unsigned-byte 8))ではなく、ZIPコンポーネントのコンテンツにグレーストリームを返すZIPファイルCLライブラリがありますか?

編集:私はストリームはストリームを取ることではないものを返すことZIP成分関数を探しています

明確化。ストリームを受け取る関数は、そのストリームに関連付けられたファイルにZIPコンポーネントのコンテンツを直接書き込みます。私はむしろそれをxlmanipは、ZIPコンポーネントが(暗黙的に、事実上)ファイルだったかのように直接ストリームから読み込みます。

+0

無関係なコメントですが、誰かが質問するつもりです: 'xlmanip'のコードはgitlabにあります。 –

答えて

0

Chipzは、ストリームにZIPを解凍できます。これは、解凍する出力ストリームと入力ストリームを与える解凍関数を提供し、解凍された内容を読み取ることができる出力ストリームを返します。

+0

コードを読み取ることから、ストリームに直接書き込みますが、読み取ることができるストリームを作成するようには見えません。また、要件に合っていません.ZIPは、目次を持つアーカイブ形式であり、gzipファイルではありません。 –

+1

@ScottM: 'chipz:make-decompressing-stream'は' zip :: zipfile-entry-stream'が入力ストリームとして与えられたときに、あなたが望むことができると思います。 – Svante

+0

@Svante: 'zip :: zipfile-entry-stream'はエクスポートされません。 (私の悪い...それは、 'zipfile'構造体の一部です。)私はそれを撃つでしょう。 –

関連する問題