問題タブ [openpyxl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
889 参照

python - Python - Linux 上の Excel - コメントとハイパーリンクを抽出する方法はありますか?

Linux で Excel スプレッドシートからセルのコメントとハイパーリンクを抽出する方法はありますか?

openpyxl でハイパーリンクを取得しようとしました:

c.value はセル値/リンク テキストを返しますが、.hyperlink は空の文字列を返しますが、スプレッドシートにリンクがあります...

おそらく、これを行う別のモジュールがありますか?

0 投票する
9 に答える
114228 参照

python - openpyxlの座標値から行番号と列番号を取得する

Excelの座標値をopenpyxlの行番号と列番号に変換しようとしています。

たとえば、セルの座標がD4の場合、将来の操作に使用する対応する行と列の番号を見つけたいと思います。行= 3、列= 3の場合、行番号を簡単に取得できます。 ws.cell('D4').rowこれを使用する4と、問題になります。しかし、同様の引数ws.cell('D4').columnが返さDれ、後続の操作のためにこれをint形式に簡単に変換する方法がわかりません。だから私はあなたにstackoverflowの賢い人々に目を向けます。手伝って頂けますか?

0 投票する
4 に答える
44610 参照

python - openpyxl CSV を EXCEL に変換

モジュール:を使用して、区切り記号付きの CSV ファイルを XLS (Excel シート)に変換するにはどうすればよいですか?openpyxl

0 投票する
1 に答える
15500 参照

python - Openpyxl-オブジェクトに属性'load_workbook'がありません

openpyxlを使用して既存のブックを読み込もうとしています。しかし、このコードを実行しようとすると、次のエラーが発生します。

import openpyxlうまくいきます、私が間違っていることは何ですか?

0 投票する
18 に答える
199915 参照

python - openpyxl-列幅のサイズを調整します

CSVファイルをXLSXファイルに変換する次のスクリプトがありますが、列サイズが非常に狭いです。データを読み取るためにマウスでドラッグする必要があるたびに。誰かが列幅を設定する方法を知っていますopenpyxlか?

これが私が使用しているコードです。

0 投票する
6 に答える
141336 参照

python - ドキュメント全体をメモリにロードせずに Excel ドキュメントの行数を取得することは可能ですか?

私は巨大な Excel 2007 ファイルを処理するアプリケーションに取り組んでおり、そのためにOpenPyXLを使用しています。OpenPyXL には、Excel ファイルを読み取る 2 つの異なる方法があります。1 つはドキュメント全体を一度にメモリにロードする「通常の」方法で、もう 1 つはイテレータを使用して行ごとに読み取る方法です。

問題は、反復子メソッドを使用しているときに、列幅や行/列数などのドキュメント メタデータを取得できないことです。このデータが本当に必要です。このデータは Excel ドキュメントの一番上に保存されていると想定しているため、アクセスするために 10MB のファイル全体をメモリにロードする必要はありません。

では、最初にドキュメント全体をメモリにロードせずに、行/列の数と列の幅を把握する方法はありますか?

0 投票する
4 に答える
97858 参照

python - Python で Openpyxl を使用して既存の Excel ファイルを変更する

私は基本的に、CSVファイルからいくつかの特定の列をコピーし、Pythonを使用して既存のExcelファイル[* .xlsx]に貼り付けようとしています。たとえば、次のような CSV ファイルがあるとします。

そのため、col_3 と col_4 の両方をコピーし、col_8 と col_9 のそれらを既存の Excel ファイル [.XLSX 形式] に貼り付けたいと考えました。これを解決するためにさまざまな方法でこれを試しましたが、正確な方法を見つけることができませんでした。私はこのようなことを試しました:

その後

しかし、このソリューションの問題は、厳密に必要な *.XLSX 形式で保存できないことです。

*.XLSX 形式を処理できる Openpyxl を使用しようとしましたが、既存の Excel ファイルを変更する方法が見つかりませんでした。誰でもこれについて助けてもらえますか?

疑問 : 1) CSV ファイルから列全体を読み取り、Python を使用して配列/リストに格納することは本当に可能でしょうか? 2) openpyxl またはその他のパッケージを使用して、.XLSX 形式の既存の Excel ファイルを変更できますか?

0 投票する
1 に答える
9322 参照

python - openpyxl インポート時にテキストを数字と見なさないでください

Excel がテキストを数値として解釈しないようにする方法や、openpyxl を使用して数値形式を出力する方法について多くの質問がありますが、この問題の解決策は見当たりません。

他の人から Excel スプレッドシートをもらったので、作成していません。Excel でファイルを開くと、「5E12」(誰かが気になる場合はクローン番号) のような特定の値が正しく表示されているように見えますが、それぞれの横に小さな緑色の矢印があり、「これは数字のようです」という警告が表示されます。テキストとして保存されます。」次に、Excel はそれを数値に変換するかどうかを尋ねます。そうであれば、5000000000000 を取得します。これは自動的に科学的表記法に変換され、5E12 が再び表示されます。今回のみ、テキスト出力はゼロで完全な数値を表示します。 . 変換前は、これは実際にはテキストであり、Excel であっても、変換するように警告/提供されているだけであることに注意してください。

そのため、このファイルを openpyxl (openpyxl.reader.excel import load_workbook から) で読み取ると、5E12 は自動的に 5000000000000 に変換されます。openpyxl は、Excel が行ったのと同じ仮定を行っていると思いますが、変換のみがプロンプトまたはなしで行われます。私の側で入力します。

どうすればこれを防ぐことができますか? 「テキストとして保存された数値」のように見えるテキストを数値に変換したくありません。私がそう言わない限り、それらはテキストです。

これまでのところ、私が見つけた唯一の解決策は、各セルの前に一重引用符を追加することですが、これはプログラムによる解決策ではなく手作業であるため、理想的な解決策ではありません。また、この問題がどこで発生するかを常に知っているとは限らないため、解決策は一般的である必要があります (1 日に何百万行も読んでいるので、手動で何かをする必要はありません)。

これはopenpyxlの問題だと思います。2011 年の初めから、この問題について言及している Google グループ ディスカッションがありますが、問題になることはめったにないと想定しています。https://groups.google.com/forum/?fromgroups=#!topic/openpyxl-users/HZfpShMp8Tk

それで、何か提案はありますか?

0 投票する
9 に答える
37300 参照

python - openpyxlを使用して範囲内のすべてのセルに境界線を適用します

パンダのデータフレームを取得して数百のチャンクに分割し、各チャンクを個別のExcelファイルとして保存するスクリプトがあります。各チャンクの列数は同じですが、行数は異なります。openpyxlを使用して、これらのファイルに他のすべての必要なフォーマットを適用する方法を理解しましたが、境界線を適用する最速の方法をまだ決定していません。また、以下のコード(各セルを個別にループする必要はないと思われる)は境界線を適用しないため、境界線を正しく適用していないと思います。

したがって、このコードは機能しますが、私が期待する境界線(Excelのデフォルトの境界線)は適用されず、私が望むよりもはるかに多くの手順が必要になります。私の期待は、私がこのようなことをすることができるはずだということです:

この機能は存在しますか?そうでない場合は、この少し太い境界線ではなく、デフォルトの境界線スタイルを適用する方法を少なくとも説明してくれる人がいますか?Border.BORDER_THICK、Border.BORDER_MEDIUM、Border.BORDER_THIN、Border.BORDER_HAIRのいずれも正しくないようです。

ありがとう!

0 投票する
1 に答える
2717 参照

python - Python:Peeweeを使用したデータベースデータのダンプ

バックグラウンド

PythonとPeeweeで作成されたMySQLクエリの結果をデータベースの列ヘッダーを含むExcelファイルにダンプする方法を探しています。エクスポートされたコンテンツを、データベースの列とほぼ同じ順序で配置したいと思います。さらに、フィールドがわずかに異なる可能性のある複数の類似したデータベース間でこれを機能させる方法が必要です。明確にするために、1つのデータベースには「User、PasswordHash、DOB、[...]」を含むユーザーテーブルがあり、別のデータベースには「User、PasswordHash、Name、DOB、[...]」があります。

問題

私の主な問題は、列ヘッダーを順番に表示することです。これまでのすべての試みは、順序付けられていない結果をもたらしましたが、そのすべてはそれほどエレガントではありません。

第二に、これまでの私の方法論は、私が(個人的に)維持したくないコードをもたらしましたが、これは悪い兆候であることがわかっています。

これまでの作業

現在、Peeweeのpwiz.pyスクリプトを使用して、ターゲットデータベース内の既存の各データベーステーブルのモデルを生成し、すべての主キーと外部キーを入力しました。関係は設定されており、いくつかの簡単なテストでは、適切に関連付けられていることが示されました。

コード:次のようなものを使用して、列ヘッダーを取得することができました。

前述のように、これは順序付けられていません。また、このようにすると、私は次のようなことをしなければなりません。

それに応じてフィールドに動的にデータを入力します。

考えと考えられる解決策

  • 配列に必要な順序を手動で書き出し、それを使用してデータをループし、データを入力します。これの長所は非常に厳格な/きめ細かい制御です。短所は、すべてのデータベースにこれを指定する必要があるということです。

  • (手動またはメソッドを介して)検出される可能性のあるすべてのフィールドに関連付けられた重み付き値を持つフィールドのハッシュを作成し、重みに従って「_meta.get_field_names()」を並べ替えるメソッドを記述します。これの短所は、あるDBではDOBの前に、別のDBではDOBの後に名前が表示されるなど、列が100%正しい順序になっていない可能性があることです。

私はそれをすべて間違っていると言ったり、これを行うためのまったく異なる方法を提案したりしてください、私はすべての耳です。私はPythonとPeewee(実際にはORM全般)に非常に慣れていません。私はPerlに戻って、DBIを介してデータベースクエリをほとんどまたはまったく面倒なく行うことができました。しかし、Excel用のライブラリは私に多くの問題を引き起こすので、これを私の知識を広げるための時間としてとらえたいと思います。