2016-10-30 24 views
0

openpyxlを使用してPythonからExcelシートを作成していて、 "spinners"をシートに挿入したいと考えています。Pythonをopenpyxlで作成するExcel "spinners"を作成する

これまでこれまで何も見つかりませんでした。私は他のPythonパッケージも使用しています。

これができない場合は、これを行う別の方法がありますか?私はPythonからマクロを書くという行に沿って何かを考えていて、何とかExcelシートとマージしましたか?

答えて

1

hereからopenpyxlはActiveXコントロールをサポートしておらず、ブックがopenpyxlによって処理されると破棄されます。


Excelをインストールしている場合は、以下のすべてがpywin32からアクセス可能である必要があります。エクセル

に使用できるコントロールの異なる種類に

Here is a good overview Excelのワークシートに埋め込むことができるコントロールの2種類があるようです:

  • への下位互換性Excelのコントロール(古いが、エクセル5)
  • ActiveXコントロール(より新しく、よりカスタマイズ可能)

Excelは、ExcelのオートメーションWorksheetオブジェクト自体がメソッドAddを有するSpinnersと呼ばれるメソッドを有する

を制御します。 VBAコードは(マクロレコーダーを使用して生成された)次のようになります。私はプログラムでこれらのコントロールを追加することで任意のドキュメントを見つけるために管理していませんでした

ActiveSheet.Spinners.Add(816, 36, 92.25, 49.5) 


のActiveXは、これらがhere文書化され、標準のMicrosoftフォームのように見える

制御します。具体的には、SpinButtonコントロールはhereと記載されています。マクロレコーダーを使用して

、私は次の取得:

ActiveSheet.OLEObjects.Add(ClassType:="Forms.SpinButton.1", Link:=False, _ 
    DisplayAsIcon:=False, Left:=633, Top:=47.25, Width:=58.5, Height:= _ 
    62.25) 
+0

うーん、おかげで情報のためにたくさん(1):)ちょうど私はWin32のは、仕事に行くされていないのMacを使っているということが起こります。/ – denvar

+0

@denvar私はopenpyxlのソースを見ていませんが、おそらくExcelの.xlsxファイルはXMLファイルの圧縮されたセットです。これはopenpyxlがやっていることです--xlsxファイルを解凍し、XMLを解析してください。おそらく同じことを実行することは可能かもしれません。あるいは、少なくともopenpyxlの解凍とXML解析を活用することさえ可能かもしれません。 –

+0

Re:「ああ、ちょうどXMLを圧縮したものだから、自分の周りを突き進ませるのはなぜ?生のExcelファイルでの作業を経験していない場合、その中に何かを差し伸べようとすると、大したことではありません。フォーマットは、ほとんどの人が想像するほど単純ではありません。そのため、OpenPyXL、XlsxWriter、xlrdなどのパッケージがあります。(あなたが何をしたいのかに応じて、専門家であっても、それはまだ難しいですが、なぜパッケージにそのような機能がないと思いますか?)この種のもののためのより良い選択。 –

関連する問題