2

pyExcelerator / xlrd のような Python ライブラリを使用して、ピボット テーブルを含むワークシート (Excel ワークブック内) を作成するにはどうすればよいですか? 他のシートのデータを要約するピボット テーブルを持つ日次レポートを生成する必要があります。1 つのオプションは、コピーしてデータを入力する空白のテンプレートを用意することです。この場合、コードからピボットを更新する方法はありますか? 他の提案はありますか?

4

3 に答える 3

5

「シート」が「スプレッドシート」の省略形であり、XLS ファイル全体を意味するのか、それとも「ワークブック」のコンポーネントである「ワークシート」の省略形なのかを (質問を編集して) 明確にしてください。

「ピボットテーブル」がExcelの仕組みを意味する場合、それはExcelでしか作成できないため、運が悪い. ただし、Python と適切なライブラリを使用して自分で作成する「クロスタブ」を意味する場合は、xlrd、xlwt、および xlutils のトリオを使用してこれを行うことができます。

xlrd について知っているようです。

xlwt は pyExcelerator のフォークであり、バグが修正され、いくつかの機能が強化されています。pyExcelerator は維持されていないようです。

xlutils はユーティリティ モジュールのパッケージです。xlutils.copy を使用して xlrd Book オブジェクトから xlwt Workbook オブジェクトを作成できるため、xlwt Workbook に変更を加えてファイルに保存できます。

3 つのパッケージに関する詳細情報、チュートリアル、およびヘルプを得るために使用できる google-group/mailing-list へのリンクをまとめたワンストップ ショップを次に示します。

于 2010-04-27T13:39:43.430 に答える
0

これを見てみてください: Python: Refresh PivotTables in worksheets

ピボット テーブルの作成方法がわかれば、私のコードを使用してそれらを更新できます

于 2013-11-05T08:46:20.730 に答える
0

を使用してプログラムでピボット テーブルを追加できるとは思えませんxlwt

しかし、2 番目のアプローチ (構成済みのワークブックにデータを入力する) は合理的なようです。

テンプレート ワークブックで VBA マクロを使用して、ピボット テーブルを更新できます。これを自動的に行うには、WorkBook_Openイベント ハンドラーを作成します。

ピボット テーブルを更新する VBA コードは次のとおりです。

Sheet1.PivotTables(1).PivotCache.Refresh
于 2010-04-27T13:46:04.290 に答える