ワークシート間でシェイプをコピーする

図形のコピー

この記事では以下の方法について説明します:

ワークシート間での画像のコピー

ステップ1: Microsoft Excelで画像とチャートが含まれたワークブックの作成

  1. Microsoft Excelで新しいワークブックを作成しました。

  2. 最初のワークシートに写真を追加し、2番目のワークシートにグラフを追加します。

    次のスクリーンショットは、Microsoft Excelで作成された2つのテンプレートワークシートを示しています。

    グラフがある「チャート」というワークシート

todo:image_alt_text

写真がある「ピクチャ」というワークシート

todo:image_alt_text

そして、ワークシート「ピクチャ」から写真を最後のワークシート「結果」にコピーします。

ステップ2:Aspose.Cells.Zipとしてダウンロード

  1. Aspose.Cells for Javaをダウンロードします。

  2. 開発コンピュータにそれを解凍します。

    すべてのAsposeコンポーネントは、インストールされると評価モードで動作します。評価モードには時間制限がなく、生成された文書にウォーターマークしか挿入されません。

ステップ3:プロジェクトの作成

たとえばEclipseのようなJavaエディタを使用してプロジェクトを作成するか、NotePadを使用して簡単なプログラムを作成することができます。

ステップ4:クラスパスの追加

Eclipseを使用してクラスパスを設定するには、次の手順を実行します。

  1. Aspose.Cells.zipからAspose.Cells.jarとdom4j_1.6.1.jarを抽出します。
  2. Eclipseでプロジェクトのクラスパスを設定します。
  3. Eclipseでプロジェクトを選択し、[プロジェクト] - [プロパティ]メニューをクリックします。
  4. ポップアップウィンドウの左側で「Javaビルドパス」を選択し、[ライブラリ]タブを選択し、「JARの追加」または「外部JARの追加」をクリックして、Aspose.Cells.jarおよびdom4j_1.6.1.jarを選択し、それらをビルドパスに追加します。
  5. AsposeのコンポーネントのAPIを呼び出すアプリケーションを作成します。

または、WindowsのDOSプロンプトで実行時に設定することもできます。たとえば:

javac -classpath %classpath%;e:\Aspose.Cells.jar; ClassName .javajava -classpath %classpath%;e:\Aspose.Cells.jar; ClassName

ステップ5:ワークシート間での写真のコピー

次に示すコードは、タスクを達成するためのものです。これにより、「ピクチャ」というワークシートから「結果」というワークシートに写真がコピーされます。

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getDataDir(CopyPicturefromOneWorksheetToAnother.class);
// Instantiating a Workbook object
Workbook workbook = new Workbook(dataDir + "Shapes.xls");
WorksheetCollection ws = workbook.getWorksheets();
Worksheet sheet1 = ws.get("Picture");
Worksheet sheet2 = ws.get("Result");
// get the Picture from first worksheet
Picture pic = sheet1.getPictures().get(0);
ByteArrayInputStream bis = new ByteArrayInputStream(pic.getData());
// Copy the Picture to Second Worksheet
sheet2.getPictures().add(pic.getUpperLeftRow(), pic.getUpperLeftColumn(), pic.getWidthScale(),
pic.getHeightScale(), bis);
// Save the workbook
workbook.save(dataDir + "Shapes.xls");

タスク1の結果:

上記のコードを実行した後、ワークシート「ピクチャ」から写真が最後のワークシート「結果」にコピーされます。

コピーされた写真がある「結果」というワークシート

todo:image_alt_text

タスク2:ワークシート間でのグラフのコピー

ステップ1:ワークシート間でグラフをコピー

次に示すのは、コンポーネントがタスクを達成するために使用した実際のコードです。

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getDataDir(CopyChartFromOneWorksheetToAnother.class);
// Instantiating a Workbook object
Workbook workbook = new Workbook(dataDir + "Shapes.xls");
WorksheetCollection ws = workbook.getWorksheets();
Worksheet sheet1 = ws.get("Chart");
Worksheet sheet2 = ws.get("Result");
// get the Chart from first worksheet
Chart chart = sheet1.getCharts().get(0);
ChartShape cshape = chart.getChartObject();
// Copy the Chart to Second Worksheet
sheet2.getShapes().addCopy(cshape, 20, 0, 2, 0);
// Save the workbook
workbook.save(dataDir + "Shapes.xls");

タスク2の結果

上記のコードを実行した後、ワークシート「チャート」からグラフが「結果」というワークシートにコピーされます。結果のワークシートのスナップショットは以下の通りです。

コピーされた写真とグラフがある「結果」というワークシート

todo:image_alt_text

タスク3:ワークシート間のコントロールやその他の図形オブジェクトのコピー

テキストボックスと楕円形がある「コントロール」というワークシート

todo:image_alt_text

以下は、望ましい結果を得るために実行する必要がある簡単な手順です。

ステップ1:ワークブック間でワークシートをコピー

次に示すのは、コンポーネントがタスクを達成するために使用したコードです。

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getDataDir(CopyWorksheetBetweenWorkbooks.class);
// Instantiating a Workbook object
Workbook workbook = new Workbook(dataDir + "Controls.xls");
WorksheetCollection ws = workbook.getWorksheets();
Worksheet sheet1 = ws.get("Control");
Worksheet sheet2 = ws.get("Result");
// Get the Shapes from the "Control" worksheet.
ShapeCollection shapes = sheet1.getShapes();
// Copy the Textbox to Second Worksheet
sheet2.getShapes().addCopy(shapes.get(0), 5, 0, 2, 0);
// Copy the oval shape to Second Worksheet
sheet2.getShapes().addCopy(shapes.get(1), 10, 0, 2, 0);
// Save the workbook
workbook.save(dataDir + "Controls.xls");

タスク3の結果

上記のコードを実行した後、ワークシート「Control」からコントロールがワークシート「Result」にコピーされました。「Result」のスナップショットを以下にご覧ください。

コピーされたテキストボックスと楕円がある「Result」というワークシート

todo:image_alt_text

結論

この記事では、Aspose.Cellsを使用して画像、グラフ、およびその他の図形オブジェクトをコピーする方法を示しました。おそらく、これによりいくつかの洞察を得て、さまざまなシナリオに応じてこれらのオプションを利用することができるでしょう。

Aspose.Cellsは解決策に対して他よりも柔軟性を提供し、特定のビジネスアプリケーション要件を満たすために優れた速度、効率性、信頼性を提供します。結果は、Aspose.Cellsが長年の研究、設計、注意深い調整の成果を得たことを示しています。

Aspose.Cellsフォーラムでのお問い合わせ、コメント、提案を心より歓迎します。