問題タブ [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.
python - Openpyxl は隣接するセルを塗りつぶします
とても変わったものに出会いました。Excelワークシートのセルを単色で塗りつぶそうとすると、隣接するセルが塗りつぶされ、時には数十個も塗りつぶされます。コードの他の場所でまったく同じことを成功させているのは奇妙です。異なるのはこの場所だけです。何が間違っている可能性があるのか についてのアイデアが徐々になくなってきており、ここの誰かが同様の問題を抱えて解決したのではないかと考えました。私の関連コードは次のとおりです。
何が間違っている可能性があるかについて何か考えがある場合は、喜んで聞いてください。正しい方向に考えさせるためだけに働く必要さえありません;)
上記のコードに次を追加しました。
期待どおり、 を返します2 G
。また、数回実行するごとに、セルが強調表示される範囲が増加することも確認しました。openpyxl
同じ範囲を使用して同じワークシート内の他のセルを強調表示すると、これよりもさらに独特です。
ワークシートの設定に何か問題があると強く感じていますが、何が原因かわかりません。また、このエラーは、同じワークシート内の複数のセルをプログラムで強調表示しようとした場合にのみ表示されます。
異なるワークシート内のセルの強調表示がさらに奇妙になる原因は、最終的に同じ範囲のセルが強調表示されることです。
フォローアップの質問:openpyxl
ワークシート/ワークブックのデータはキャッシュされますか? これはそのような行動を説明するからです。
python - ファイルを閉じるときに複数のセルの1つが選択されているときに複数のセルを強調表示するopenpyxl
私のこの投稿で最初に説明されたopenpyxlのセルをプログラムで強調表示すると、奇妙な動作に遭遇しました。これを調査するのに(はるかに)時間を費やし、このエラーの原因を追跡することができました. これがそれを再現する唯一の方法かどうかはわかりません。おそらくいくつかの手順は必要ありませんが、次のコード例は私が実際に行っていることに最も近いものです。
何が起こるかは、いくつかの値 (数値とテキスト) を含む既存のブックを開くことです。数字は後で強調表示するセル ( A1と "myName" と呼ばれるセル、テスト ケースではE7 ) にありますが、テキストは隣接する列にあります。次に、 A1と名前付きセルをいくつかの色で塗りつぶし、ブックを保存します。これは、必要に応じて何度でも繰り返すことができます (元のコードの長時間の使用をシミュレートするため)。
最初の実行後、期待どおりにすべてが正常に動作します。この問題は、最初の実行後に Excel でブックを開き、A1を含むセルの範囲に「塗りつぶしなし」を適用し、それらのセルを選択したままブックを閉じると発生します。私のコードを 10 回または 20 回繰り返し実行すると、テスト ブックを Excel で開いたときに、最初に選択したセル範囲がA1と同じ色で強調表示されていることがわかります。
私の質問は次のとおりです。
ここで何か間違ったことをしていますか?プログラムの性質上、この手順を数回実行する必要があり、ユーザーがセルを選択した状態でワークブックを閉じることを禁じることはできません。
これを防ぐ方法はありますか?はいの場合、これを行う方法は?
追加情報
この動作を観察したワークブックを形成する XML ファイルを調べました (標準については、この Web サイトを参照してください)。openpyxl
何らかの理由で、 を使用して書式設定を変更するときにセル スタイルの参照を選択したままにすると、セル スタイルの参照が変更されることに気付きました。たとえば、セルB1
(letter s
) のスタイルは 0 (または既定では 0 と見なされるため存在しない) にする必要がありますが、ワークブックで上記のコードを実行openpyxl
する場合は次のように変更します。1
これにより、セル スタイルが変更されます。私はここで何か間違ったことをしているのではないかと非常に強く疑っています。
私の新しい質問は次のとおりです。モジュール
のどの部分がopenpyxl
これを担当する可能性が最も高いですか? 何かが修正が必要だと言っているからです。
python - 長さの異なる複数のワークブックをループしますか?
複数のワークブックをループするコードがいくつかあります。
ただし、範囲はワークシートごとに異なります。データのある最後の行を取得する方法はありますか?
python - 列の書式コードをどのように設定しますか?
セルの書式コードを設定する方法は知っていますが、列全体の書式を設定する方法はありますか?
セルの設定:
self.sh.cell(row=row,column=3).style.number_format.format_code = 'm/d/yyyy'
python - openpyxl 別のシートのセルを参照する関数を作成する
数日前にopenpyxlを使い始めたばかりで、その素晴らしいライブラリです。ただし、高度な機能のドキュメントはまばらなようです。いくつか問題があります。
- openpyxl は、挿入する数式を小文字に変更しているようで、Excel からの不明な参照が発生します。
- さらに、小文字に対応するようにシートの名前を変更しましたが、まだ#NAMEが見つかりましたか? 参照があったセルのエラー。
誰かがopenpyxlで別のシートからセルを参照する方法または場所を見つける方法を教えてください
python - openpyxl エラー: 'str' オブジェクトに属性 'BLACK' がありません
pythons OPENPYXL モジュールを使用して、Excel スプレッドシートにスタイルを設定しようとしています。私はこのエラーを思い付き続けます:
「str」オブジェクトには属性「BLACK」がありません
基本的に、私のコードは .xlsx ファイルから既知の値のリストを読み取り、それらを Python リストに配置します。そのリストを使用して、アクセス テーブルの列の値を比較し、各セルの値が既知の値と比較して正しいことを確認します。
私のスクリプトが失敗するのは、openpyxl を使用してスタイルを設定しようとしたときです。なぜか上記のエラーが出ます。厄介なことに、スタイルでBLACKをどこでも使用していないため、塗りつぶしを設定しようとするとエラーが発生するようです。スクリプトのSearchCursor部分では、各行を反復処理します。スクリプトが失敗するのは 2 番目のパスです。何かを上書きしたいような気がしますが、何がわかりません。
python - Windows の python2.5 に Openpyxl をインストールする
私は試してみeasy_install install openpyxl
ましpython setup install
た。どちらも失敗しました。私も挑戦しeasy_install openpyxl
てまた失敗しました。得られた出力を含めます。
を試すとeasy_install install openpyxl
、次の出力が得られます。
試してみるとeasy_install openpyxl
代わりに試してみると、同じ出力が得られますが、「install」ではなく「openpyxl」という単語が表示されます。
を試すとpython setup install
、次の出力が得られます。
助言がありますか?
python - use_iterators = True を使用した OpenPyxl でのフォーマット
これは、openpyxl でフォーマット データを取得する以前の質問に似ています 。唯一の本当の違いは、速度を上げるために最適化されたワークブックを本当に使用したいということです。
基本的に、最適化されたリーダーを使用すると、フォーマットの詳細を取得する方法がわかりません。これはおもちゃのサンプルです。コメントは、印刷ステートメントで見ていることを説明しています。私は何か間違ったことをしていますか?フォーマットの詳細を取得するより良い方法はありますか?
また、誰かが xlsx + フォーマットの取得をサポートする Python 用の別の Excel リーダーを知っていれば、私は変更を受け入れます! (私はすでにxlrdを試しましたが、新しいビルドではxlsxをサポートしていますが、フォーマットはまだサポートしていません)
python - Pythonでxlsまたはxlsxファイルから読み取った後、データを文字列に変換します
xls/xlsx ファイルからデータを読み取り、db に挿入する関数を作成しています。しかし問題は、xls ファイルのセルからデータを読み取った後、値が float 型になることです。
以下は、xls ファイルからのサンプル データです。
私はfrom openpyxl.reader.excel import load_workbook
xlsファイルを読むために使用しています。これらの値をDBに挿入するときにZipおよびZone列から値を読み取った後、すべての数値は浮動小数点型になりますが、文字列として保存する必要があります。2 db を超える列の型はVARCHARです
また、ターミナルで xls ファイルから読み取った後、上記の 2 列の値を出力しました。結果は次のとおりです。
ジップ
ゾーン
マイコード
その他の情報: Python 2.6 を使用しており、Ubuntu マシンでこれを解決する方法。