2017-12-19 6 views
0

golangで大きなExcelファイルを読み込もうとしています。 私は列の数を見つける必要があります。Excelシートの行数と列数を取得

https://godoc.org/github.com/360EntSecGroup-Skylar/excelize ライブラリを使用していますが、このような機能が見つかりませんでした。 Pythonで

Golangで同様https://xlrd.readthedocs.io/en/latest/api.html#xlrd.sheet.Sheet.ncols

はありますか?

+1

xlsxの場合、xmlの関連部分をごくわずかなメモリで解析できます。 –

答えて

2

Excelには固定数の列がありません。必要なのは、すべての行で見つかった列の最大数です。

これはまさにSheet.ncolsの機能です。 excelizeと同じ結果を得るには、GetRowsを呼び出し、すべての行を繰り返し、すべての行の中で最も高い列数を見つけます。

+0

私の問題はメモリです。私はgolangに移植したいpythonスクリプトを持っています。私はPythonが全体をメモリで読み取るかどうかはわかりません。 go:1GB以上のメモリ python:数MB また、pythonでは13sでファイルをロードして処理し、45sを読むだけです。 – gosom

+1

シート全体を読み込むのではなく、反復モードを可能にするために、goライブラリの開発者に機能リクエストを提出することをお勧めします。 – Marc

2

ライブラリには、あなたが望むものとまったく同じ機能を持っているようですが、それは単に公開されていないだけです。 hereを参照してください。

私はPRを公開して、これを公開することができるかどうかを確認します。メモリが問題である理由は、ライブラリの現在の行/列の総数を取得する唯一の方法は、マップがすべての単一セルから構成されることです(GetRowsを参照)。

+0

すてきなキャッチ。残念ながら、OpenFileを実行すると、メモリ内のすべてが読み込まれます。私はもう少し調べてみる – gosom

関連する問題