ピボットテーブルとソースデータ
Pivot Tableのソースデータ
デザイン時にはわからない異なるデータソース(たとえばデータベースなど)からデータを取るピボットテーブルを作成したいときがあります。この記事では、ピボットテーブルのデータソースを動的に変更するアプローチについて説明します。
ピボットテーブルのデータソースを変更する
- 新しいデザイナーテンプレートを作成します。
-
以下のスクリーンショットに示すように、新しいデザイナーテンプレートファイルを作成します。
-
その後、DataSourceという名前の範囲を定義します。この範囲はこれらのセルの範囲を参照します。
デザイナーテンプレートの作成と名前付き範囲の定義、DataSource
-
- この名前付き範囲に基づいてPivot Tableを作成します。
-
Microsoft Excelでデータ、ピボットテーブル、ピボットテーブルおよびピボットチャートレポートを選択します。
-
最初のステップで作成した名前付き範囲に基づいてピボットテーブルを作成します。
DataSourceに基づいてピボットテーブルを作成する
-
- 対応するフィールドをピボットテーブルの行と列にドラッグし、スクリーンショットに示されているような結果のピボットテーブルを作成します。
対応するフィールドに基づいてピボットテーブルを作成する
設計したピボットテーブルが以下に示されています。
-
データオプションの設定で開くときに更新をチェックします。
ピボットテーブルオプションの設定
これで、このファイルをデザイナーテンプレートファイルとして保存できます。
- 新しいデータを埋め込んでピボットテーブルのソースデータを変更します。
- デザイナーテンプレートが作成されたら、次のコードを使用してピボットテーブルのソースデータを変更します。
以下のコード例を実行すると、ピボットテーブルのソースデータが変更されます。
from aspose.cells import Workbook | |
# The path to the documents directory. | |
dataDir = RunExamples.GetDataDir(".") | |
InputPath = dataDir + "Book1.xlsx" | |
# Creating a file stream containing the Excel file to be opened | |
fstream = open(InputPath, "rb") | |
# Opening the Excel file through the file stream | |
workbook = Workbook(fstream) | |
# Accessing the first worksheet in the Excel file | |
worksheet = workbook.worksheets[0] | |
# Populating new data to the worksheet cells | |
worksheet.cells.get("A9").put_value("Golf") | |
worksheet.cells.get("B9").put_value("Qtr4") | |
worksheet.cells.get("C9").put_value(7000) | |
# Changing named range "DataSource" | |
range = worksheet.cells.create_range(0, 0, 9, 3) | |
range.name = "DataSource" | |
# Saving the modified Excel file | |
workbook.save(dataDir + "output.xls") | |
# Closing the file stream to free all resources | |
fstream.close() |