2017-02-22 1 views
0

"SheetJSDev"が作成した "SheetJS"の "js_xlsx"というNode.jsパッケージを使用して、Meteor Appで作業しています。私はこのパッケージを使用して、アップロードされたExcelシートをバックエンドのJSONに変換しています。そのため、MongoDBに保存して、フロントエンドでファンシーな機密作業を行うために使用できます。ただ一つの問題があります。パッケージは、空のヘッダーを持つ列をスキップします。ただし、右端の列は空のヘッダーを使用します。私はすでにパッケージのカラムが空のヘッダで処理されているだけであることを理解しましたが、JSONキーは一意である必要があるため、最後のカラムはJSONオブジェクトの空のヘッダとともに保存されます。js_xlsxはすべての空のヘッダをどのように保存するのですか?

例:満たされたすべてのヘッダを持つ

:すべてのヘッダーが満たされたとき、あなたが見ることができるように

enter image description here

enter image description here

は、すべてがうまく動作します。空の第一及び第二の最後のヘッダで

:あなたは「未定義」ヘッダと最初に、第二の最後の列が前に置かれますことを確認ここで

enter image description here

enter image description here

(2番目の最後の列で上書きされるため、どちらもそのキーとして「未定義」があるため)列がそこにもありません。 3番目と4番目の画像と同様に

enter image description here

enter image description here

同じもの:空の第3列と第2の最後のヘッダで

。ヘッダーが空の最後の列だけがJSONオブジェクトに入ります。

私はソースコードを調べて、GitHubページを検索し、Googleに助けてもらえました。

私が知りたいです:

がどのようにプロセス空のヘッダを持つすべての列をjs_xlsx作るのですか?

パッケージのGitHubのページへのリンクは次のとおりです。

https://github.com/SheetJS/js-xlsx

すべてのヘルプははるかに高く評価されます!

答えて

0

I suspect問題は、デフォルトでSheetJS(xlsx.js)のsheet_to_json関数が空のセルを完全にスキップすることです。 (普遍的な "空のセルを扱う方法"はありません...残念ながら(imho)、単にセル全体をスキップしてJSONを荒らしにします)。あなたは言った、このかもしれない全体の列が生成されるのを保つかもしれない。

オプションで、その関数に渡すことができるdefval値を指定することで、この動作を変更できます。例えば

:あなたがしたい場合

filledOutJSON = XLSX.utils.sheet_to_json(worksheet,{"defval":"whatever_you_want"});

注意、あなたは、空の文字列、""を指定することができます。

ここに指定されているその他のオプションを指定できます。https://github.com/SheetJS/js-xlsx#json

関連する問題