Java Excel文書に画像を挿入・抽出

<h1><strong>はじめに</strong></h1>
<p>Excelに画像や図形を挿入することで、エクセル文書をよりビジュアル化させることができます。今回は<a href="https://www.e-iceblue.com/Introduce/xls-for-java.html">Spire.XLS for Java</a>を活用してExcel文書に画像を挿入・抽出する方法を紹介しています。この記事の案内を通して、少しでもお役に立てたのであればと思いますね。閑話休題、始めましょう！</p>
<h1><strong>Spire.XLS for Java</strong><strong>とは？</strong></h1>
<p><a href="https://www.e-iceblue.com/Introduce/xls-for-java.html">Spire.XLS for Java</a>は、開発者がJavaプラットホームでExcelの文書ファイルを迅速かつ高品質で<a href="https://www.e-iceblue.com/Tutorials/Java/Spire.XLS-for-Java/Program-Guide/Document-Operation/Create-Excel-File-in-Java.html">作成</a>・編集・<a href="https://www.e-iceblue.com/Tutorials/Java/Spire.XLS-for-Java/Program-Guide/Conversion/Java-convert-Excel-to-SVG.html">変換</a>・<a href="https://www.e-iceblue.com/Tutorials/Java/Spire.XLS-for-Java/Program-Guide/Print/Print-Excel-Documents-in-Java.html">印刷</a>するために設計された専門的なJava Excelライブラリです。</p>
<p>中には、商用版と無料版の<a href="https://www.e-iceblue.com/Introduce/xls-for-java.html">Free.Spire.XLS for java</a>があります。<a href="https://www.e-iceblue.com/Introduce/xls-for-java.html">Spire.XLS for Java</a>は商用版ではありますが、基本的な機能を搭載しているので、無料試用で日常の仕事にもう結構だと思います。
<h1><strong>下準備</strong></h1>
1.E-iceblueの公式サイトから<a href="https://www.e-iceblue.com/Download/xls-for-java.html">Spire. XLS for Java</a>をダウンロードしてください。       
<p>2.IDEを起動して新規プロジェクトを作成してから、インストールされたファイルに相応しいSpire. XLS.jarを参照に追加してください。</p>
<h1><strong>Maven</strong><strong>の側なら？</strong></h1>
<p>もしMavenの利用者だったら、pom.xmlファイルに下記のようなコードを追加することで、JARを簡単にインポートできます。</p>

```JAVA
<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <url>http://repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.xls</artifactId>
        <version>4.9.0</version>
    </dependency>
</dependencies>
```
<h1><strong>画像を挿入</strong></h1>
```JAVA
import com.spire.xls.ExcelPicture;
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;

public class InsertImage {
    public static void main(String[] args){

        //Workbookオブジェクトを作成します。
        Workbook workbook = new Workbook();

        //エクセルをロードします。
        workbook.loadFromFile("Input.xlsx");

        //シートを取得します。
        Worksheet sheet = workbook.getWorksheets().get(0);

        //画像を指定する場所へ追加します。
        ExcelPicture pic = sheet.getPictures().add(4, 1,"image.jpg");

        //画像の幅と高さを設定します。
        pic.setWidth(500);
        pic.setHeight(300);

        //保存します。
        workbook.saveToFile("InsertImage.xlsx", ExcelVersion.Version2013);
    }
}
```
<h1><strong>実行結果</strong></h1>

<p><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/l/lendoris/20211012/20211012150049.png" alt="f:id:lendoris:20211012150049p:plain" width="554" height="450" loading="lazy" title="" class="hatena-fotolife" itemprop="image" /></p>

```JAVA
import com.spire.xls.ExcelPicture;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class ReadImage {
    public static void main(String[] args) throws IOException {

        //Workbookオブジェクトを作成します。
        Workbook workbook = new Workbook();
        
//Excelロードします。
        workbook.loadFromFile("InsertImage.xlsx");

        //シートを取得します。
        Worksheet sheet = workbook.getWorksheets().get(0);

        //画像を指定する場所へ保存します。
        ExcelPicture pic = sheet.getPictures().get(0);
        BufferedImage loImage = pic.getPicture();
        ImageIO.write(loImage,"jpg",new File("output/ReadImage.jpg"));
    }
}
```
<h1><strong>以下の関連記事もご参照</strong></h1>
<ol>
<li>エクセル文書変換機能：<a href="https://www.e-iceblue.com/Tutorials/Java/Spire.XLS-for-Java/Program-Guide/Conversion/Convert-Excel-to-Image-in-Java.html">Convert Excel to image in Java</a></li>
<li>エクセル文書の作成法：<a href="https://www.e-iceblue.com/Tutorials/Java/Spire.XLS-for-Java/Program-Guide/Document-Operation/Create-Excel-File-in-Java.html">Create an Excel Document in Java</a></li>
<li>エクセル文書を印刷：<a href="https://www.e-iceblue.com/Tutorials/Java/Spire.XLS-for-Java/Program-Guide/Print/Print-Excel-Documents-in-Java.html">Create an Excel Document in Java</a></li>
</ol>
<h1><strong>最後に</strong></h1>
<p>ここまで読んでくださってありがとうございます！もし<a href="https://www.e-iceblue.com/Introduce/xls-for-java.html">Spire.XLS for Java</a>を利用している時にご不明なところがございましたら、ぜひご連絡ください</p>
<p> </p>