チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

Koohji

Koohji

Word ファイル形式は Microsoft 社によって考案され、次第にかけがえのないものとなってきました。私たちが目にした印刷物やデジタル出版物、報告書、パンフレット、履歴書のほとんどは Word で作成されたものです。この記事では、Spire.Doc for Java を使用して、Java で Word ドキュメントをプログラム的に作成する方法を学びます。

Spire.Doc for Java が提供する Document クラスは、ドキュメントモデルを表し、Word ドキュメントをゼロから作成したり、既存の Word ファイルを読み込んでさらに修正するために使用されます。Word ドキュメントは少なくとも1つのセクション(Section クラスで表される)を含んでいなければならず、各セクションは段落、表、ヘッダー、フッターなどの Word の基本要素のためのコンテナとなります。以下は、このチュートリアルで扱う主要なクラスとメソッドのリストです。

メンバー 説明
Document クラス Word ドキュメントモデルを表現する。
Section クラス Wordドキュメント内のセクションを表す。
Paragraph クラス セクション内の段落を表す。
ParagraphStyle クラス 段落に適用可能なフォントのフォーマット情報を定義する。
Section.addParagraph() メソッド セクションに段落を追加する。
Paragraph.appendText() メソッド 段落の末尾にテキストを追加する。
Paragraph.applyStyle() メソッド 段落にスタイルを適用する。
Document.saveToFile() メソッド ドキュメントを拡張子が .doc または .docx の Word ファイルに保存します。この方法は、PDF、XPS、HTML、PLC などへの保存にも対応しています。

Spire.Doc for Java をインストールします

まず、Spire. Doc for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url> https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.doc</artifactId>
        <version>10.7.4</version>
    </dependency>
</dependencies>

Java で簡単な Word ドキュメントを作成する

以下は、Spire.Doc for Java を使用して、いくつかの段落を含む簡単な Word ドキュメントを作成する手順です。

  • Document クラスのオブジェクトを作成します。
  • Document.addSection() を使用してセクションを追加します。
  • Section.getPageSetup().setMargins() メソッドを使用して、ページの余白を設定します。
  • Section.addParagraph() メソッドを使用して、セクションにいくつかの段落を追加します。
  • Paragraph.appendText() メソッドを使用して、段落にテキストを追加します。
  • ParagraphStyle クラスのオブジェクトを作成し、Paragraph.applyStyle() を使用して段落に適用します。
  • Document.saveToFile() メソッドを使用して、Word ドキュメントをファイルに保存します。
  • Java
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.Section;
import com.spire.doc.documents.HorizontalAlignment;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.documents.ParagraphStyle;

import java.awt.*;

public class createWordDocument {

    public static void main(String[] args) {

        //Documentクラスのオブジェクトを作成する
        Document doc = new Document();

        //セクションを追加する
        Section section = doc.addSection();

        //ページの余白を設定する
        section.getPageSetup().getMargins().setAll(40f);

        //タイトルとして段落を追加する
        Paragraph titleParagraph = section.addParagraph();
        titleParagraph.appendText("Spire.Doc for Java の紹介");

        //本文として2つの段落を追加する
        Paragraph bodyParagraph_1 = section.addParagraph();
        bodyParagraph_1.appendText("Spire.Doc for Java は、Java アプリケーションが Microsoft Word に依存せずに Word 文書を" +
                "作成、変換、操作、および印刷できるようにする専門的な Word API です。");

        Paragraph bodyParagraph_2 = section.addParagraph();
        bodyParagraph_2.appendText("この多機能ライブラリを使用することで、開発者は、画像、ハイパーリンク、デジタル署名、" +
                "ブックマークと透かしの挿入、ヘッダーとフッターの設定、テーブルの作成、背景画像の" +
                "設定、脚注と文末脚注の追加など、さまざまなタスクを簡単に処理できます。");

        //タイトル段落のスタイルを作成し、適用する
        ParagraphStyle style1 = new ParagraphStyle(doc);
        style1.setName("titleStyle");
        style1.getCharacterFormat().setBold(true);;
        style1.getCharacterFormat().setTextColor(Color.BLUE);
        style1.getCharacterFormat().setFontName("Yu Mincho");
        style1.getCharacterFormat().setFontSize(16f);
        doc.getStyles().add(style1);
        titleParagraph.applyStyle("titleStyle");

        //本文の段落のスタイルを作成し、適用する
        ParagraphStyle style2 = new ParagraphStyle(doc);
        style2.setName("paraStyle");
        style2.getCharacterFormat().setFontName("Yu Mincho");
        style2.getCharacterFormat().setFontSize(12);
        doc.getStyles().add(style2);
        bodyParagraph_1.applyStyle("paraStyle");
        bodyParagraph_2.applyStyle("paraStyle");

        //段落の水平方向の配置を設定する
        titleParagraph.getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
        bodyParagraph_1.getFormat().setHorizontalAlignment(HorizontalAlignment.Justify);
        bodyParagraph_2.getFormat().setHorizontalAlignment(HorizontalAlignment.Justify);

        //最初の行のインデントを設定する
        bodyParagraph_1.getFormat().setFirstLineIndent(30) ;
        bodyParagraph_2.getFormat().setFirstLineIndent(30);

        //段落後の間隔を設定する
        titleParagraph.getFormat().setAfterSpacing(10);
        bodyParagraph_1.getFormat().setAfterSpacing(10);

        //ドキュメントをファイルに保存する
        doc.saveToFile("Wordドキュメント.docx", FileFormat.Docx_2013);
        doc.close();
    }
}

Java:Word ドキュメントを作成する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

大きな PDF ドキュメントは、電子メールで PDF ファイルを転送したい場合や、限られたストレージ容量のデバイスに PDF ファイルを保存したい場合など、すべての場合に適用されません。その時、PDF ファイルのサイズを圧縮することは、この問題を解決するための完璧な方法かもしれません。この記事では、Spire.PDF for .NET を使用して、C# および VB.NET でプログラムによって PDF ファイルを圧縮する方法を示します。

ここでは、画像、フィールド、コメント、ブックマーク、添付ファイル、埋め込みフォントを削除することによって PDF サイズを小さくすることには触れません。

Spire.PDF for .NET をインストールします

まず、Spire.PDF for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.PDF

PDF ファイルのコンテンツと画像を圧縮する

次の手順は、Spire.PDF for .NET を使用して PDFファイルを圧縮する方法を示しています

  • PdfDocument クラスのオブジェクトを作成する
  • PdfDocumentLoadFromFile() メソッドを使用して、PDF ドキュメントをロードする。 
  • PdfDocumentFileInfo.IncrementalUpdate の属性を false に設定して incremental update を無効にします。
  • 圧縮レベルを「最適」に設定して、ドキュメントのコンテンツを圧縮します。PdfCompressionLevel の例から他のいくつかのレベルを選択できます。
  • ドキュメント内のページをトラバースし、PdfImageHelper.GetImagesInfo() メソッドを使用して、各ページの画像情報セットを取得します。
  • コレクション内のすべてのアイテムをトラバースし、PdfImageHelperReplaceImage() メソッドを使用して、各ピクチャを圧縮ピクチャに置き換えます。
  • PdfDocumentSaveToFile() メソッドを使用して、ドキュメントを保存します。
  • C#
  • VB.NET
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
using Spire.Pdf.Utilities;

namespace CompressPdf
{
    class Program
    {
        static void Main(string[] args)
        {
            // PdfDocumentクラスのオブジェクトを作成する
            PdfDocument doc = new PdfDocument();

            // PDFファイルのロードする
            doc.LoadFromFile(@"sample.pdf");

            // incremental updateを無効にする
            doc.FileInfo.IncrementalUpdate = false;

            //圧縮レベルを最適に設定する
            doc.CompressionLevel = PdfCompressionLevel.Best;

            //ドキュメント内のページをループブラウズする
            foreach (PdfPageBase page in doc.Pages)
            {
                //PdfImageHelperのオブジェクトを作成する
                PdfImageHelper helper = new PdfImageHelper();

                //特定のページの画像情報セットを取得する
                PdfImageInfo[] imagesInfo = helper.GetImagesInfo(page);

                //コレクション内のすべてのアイテムをループブラウズする
                foreach (PdfImageInfo imageInfo in imagesInfo)
                {
                    //特定の画像を圧縮画像と一緒に配置する           
                    helper.ReplaceImage(imageInfo, CompressImage(imageInfo.Image));
                }

            }

            //ドキュメントを別のPDFファイルに保存する
            doc.SaveToFile("output.pdf");
            doc.Close();
        }

        //画質を低下させることで画像を圧縮する
        private static PdfBitmap CompressImage(Image img)
        {
            PdfBitmap newImage = new PdfBitmap(img);
            newImage.Quality = 10;
            return newImage;
        }
    }
}
Imports Spire.Pdf
Imports Spire.Pdf.Graphics
Imports System.Drawing
Imports Spire.Pdf.Utilities
 
Namespace CompressPdf
    Class Program
        Shared  Sub Main(ByVal args() As String)
            ' PdfDocumentクラスのオブジェクトを作成する
            Dim doc As PdfDocument =  New PdfDocument() 
 
            ' PDFファイルのロードする
            doc.LoadFromFile("sample.pdf")
 
            ' incremental updateを無効にする
            doc.FileInfo.IncrementalUpdate = False
 
            '圧縮レベルを最適に設定する
            doc.CompressionLevel = PdfCompressionLevel.Best
 
            'ドキュメント内のページをループブラウズする
            Dim page As PdfPageBase
            For Each page In doc.Pages
                ' PdfImageHelperのオブジェクトを作成する
                Dim helper As PdfImageHelper =  New PdfImageHelper() 
 
                '特定のページの画像情報セットを取得する
                Dim imagesInfo() As PdfImageInfo =  helper.GetImagesInfo(page) 
 
                'コレクション内のすべてのアイテムをループブラウズする
                Dim imageInfo As PdfImageInfo
                For Each imageInfo In imagesInfo
                    '特定の画像を圧縮画像と一緒に配置する   
                    helper.ReplaceImage(imageInfo, CompressImage(imageInfo.Image))
                Next
 
            Next
 
            'ドキュメントを別のPDFファイルに保存する
            doc.SaveToFile("output.pdf")
            doc.Close()
            System.Diagnostics.Process.Start("output.pdf")
 
        End Sub
 
        '画質を低下させることで画像を圧縮する
        Private Shared Function CompressImage(ByVal img As Image) As PdfBitmap
            Dim NewImage As PdfBitmap =  New PdfBitmap(img) 
            NewImage.Quality = 10
            Return NewImage
        End Function
    End Class
End Namespace

C#/VB.NET:PDF ファイルを圧縮する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Word ドキュメントに外部に漏れては困る機密情報が含まれている場合、パスワードがないと開けないように暗号化することができます。この記事では、Spire.Doc for Java を使用して Word ドキュメントを暗号化する方法と、パスワードで保護されたドキュメントを復号化する方法を紹介します。

Spire.Doc for Java をインストールします

まず、Spire. Doc for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url> https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.doc</artifactId>
        <version>10.7.4</version>
    </dependency>
</dependencies>

Word ドキュメントを暗号化する

Spire.Doc for Java では、Document.encrypt(java.lang.String password) メソッドを用いて Word ドキュメントをパスワード付きで暗号化することができます。主な手順は以下のとおりです。

  • Document クラスのインスタンスを作成します。
  • Document.loadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
  • Document.encrypt(java.lang.String password) メソッドを使用して、ドキュメントをパスワード付きで暗号化します。
  • Document.saveToFile() メソッドを使用して、ドキュメントを別のファイルに保存します。
  • Java
import com.spire.doc.Document;
import com.spire.doc.FileFormat;

public class encryptWordDocument {
    public static void main(String[] args) {
        //Documentクラスのインスタンスを作成する
        Document document = new Document();

        //Wordドキュメントを読み込む
        document.loadFromFile("サンプル.docx");

        //パスワードでドキュメントを暗号化する
        document.encrypt("password_001");

        //ドキュメントを別のファイルに保存する
        document.saveToFile("ドキュメントの暗号化.docx", FileFormat.Docx);
    }
}

Java:Word ドキュメントの暗号化・復号化

パスワードで保護された Word ドキュメントの復号化

Spire.Doc for Java では、Document.removeEncryption() メソッドを使用して、パスワードで保護された Word ドキュメントを復号化することができます。以下、詳しい手順を説明します。

  • Document クラスのインスタンスを生成します。
  • Document.loadFromFile(java.io.InputStream stream, FileFormat fileFormat, java.lang.String password) メソッドを使用してパスワードで保護されたサンプルドキュメントを読み込みます。
  • Document.removeEncryption() メソッドを使用して、ドキュメントの暗号化を解除しています。
  • Document.saveToFile() メソッドを使用して、ドキュメントを別のファイルに保存します。
  • Java
import com.spire.doc.Document;
import com.spire.doc.FileFormat;

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

        //Documentクラスのインスタンスを作成する
        Document document = new Document();

        //パスワードで保護されたWordドキュメントを読み込む
        document.loadFromFile("ドキュメントの暗号化.docx", FileFormat.Docx, "password_001");

        //このドキュメントの暗号化を解除する
        document.removeEncryption();

        //このドキュメントを別のファイルに保存する
        document.saveToFile("ドキュメントの復号化.docx", FileFormat.Docx);
    }
}

Java:Word ドキュメントの暗号化・復号化

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Spire.XLS for Java 12.7.4 のリリースを発表できることを嬉しく思います。このリリースでは、カスタムソートがサポートして、Excel 2016 で定義された Chart タイプを PDF と画像に変換がサポートしました。 さらに、今回の更新は、Excel から HTML、Excel から PDF への変換機能を強化しました。 また、トレンド線をグラフに追加した後に、線のスタイルが変更されたなどの既知の問題も修正されました。詳細は以下の内容を読んでください。

このリリースで行われた変更のリストは次のとおりです
カテゴリー ID 説明
New feature SPIREXLS-3704 カスタムソートがサポートしました。
wb.getDataSorter().getSortColumns().add(0, new String[]
{"12345","Argentina", "Area", "Chile", "Capital","USA","Ecuador","Guyana"}
); wb.getDataSorter().sort(wb.getWorksheets().get(0).getRange().get("A1:A8"));
New feature - Excel 2016 で定義された Chart タイプをPDFと画像に変換がサポートしました。
Bug SPIREXLS-3524 Excel を PDF に変換した後に、グラフの内容が間違っていた問題が修正されました。
Bug SPIREXLS-3862 Excel をHtml に変換した後に、線の色を変更する問題が修正されました。
Bug SPIREXLS-3863 Excel を Html に変換した後に、グラフがぼやけていた問題が修正されました。
Bug SPIREXLS-3975 データシートを sheet にインポートした後に、データが正しくない問題を修正しました。
Bug SPIREXLS-3976 トレンド線をグラフに追加した後に、線のスタイルが変更された問題が修正されました。
Bug SPIREXLS-3979 グラフを画像に変換した後に、X軸の内容が正しく表示されない問題が修正されました。
ここで Spire.XLS for Java12.7.4 をダウンロードする

XML はテキストマークアップ言語であり、主に任意のデータを保存して転送するために使用されます。XML ファイルは簡潔、普遍的、使いやすいなどの特徴があり、ネットワークサーバの中で特に人気があります。XML と HTML はいずれもテキストマークアップ言語であり、類似性があるが、両者の応用シーンは異なります。XML は主にデータの保存と転送に使用されるが、HTML は Web ページのコンテンツを表示するために使用される。この記事では、Spire.Doc for .NET を使用して、C# および VB.NET でプログラムによって Word を XML に変換する方法を示します。

Spire.Doc for .NET をインストールします

まず、Spire.Doc for.NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.Doc

Word を XML に変換する

次の手順は、Spire.Doc for .NET を使用して Word を XML に変換する方法を示しています。

  • Document クラスのオブジェクトを作成する。
  • Document.LoadFromFile() メソッドを使用して Word ドキュメントをディスクからロードする
  • Document.SaveToFile() メソッドを使用して、Word ドキュメントを XML ファイルとして保存する
  • C#
  • VB.NET
using System;
using Spire.Doc;

namespace WordtoXML
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // Documentクラスのオブジェクトを作成する
            Document document = new Document();

            // Wordドキュメントをディスクからロードする
            document.LoadFromFile(@"Sample.docx");

            // WordドキュメントをXMLファイルとして保存する
            document.SaveToFile("Sample to xml.xml", FileFormat.Xml);
        }
    }
}
Imports System
Imports Spire.Doc

Module Program
    Sub Main(args As String())
        ' Documentクラスのオブジェクトを作成する
        Dim document As New Document()

        ' Wordドキュメントをディスクからロードする
        document.LoadFromFile("Sample.docx")

        ' WordドキュメントをXMLファイルとして保存する
        document.SaveToFile("Sample to xml.xml", FileFormat.Xml)
    End Sub
End Module

C#/VB.NET:Word を XML に変換する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Spire.PDFViewer 7.7.1 のリリースを発表できることを嬉しく思います。このリリースでは、ドキュメントの読み込み時間を最適化しました。さらに、ドキュメントをプレビューする際に内容が空白になるなどの既知の問題が修正されました。 詳細は以下の内容を読んでください。

このリリースで行われた変更のリストは次のとおりです
カテゴリー ID 説明
Bug SPIREPDFVIEWER-492 ドキュメントの読み込み時間を最適化しました。
Bug SPIREPDFVIEWER-542 ドキュメントをプレビューする際に、内容が空白になっていた問題が修正されました。
Bug SPIREPDFVIEWER-547 PDFを回転させた際に、 アプリケーションが「value can not be null」をスローする問題を修正しました。
Bug SPIREPDFVIEWER-551 ドキュメントをプレビューする際に、スタンプが失われていた問題が修正されました。
ここで Spire.PDFViewer 7.7.1をダウンロードする

グラフ・タイプの作成をサポートしました Spire.Presentation 7.7.5 のリリースを発表できることをうれしく思います。このバージョンでは、PowerPoint 2016 の新たに追加されたグラフ・タイプの作成をサポートしました、すなわち Waterfall、Treemap、Boxandwhisker、SunBurst、ヒストグラム、パレート。さらに、このバージョンでは、スライド画像の切り抜きをサポートする SlidePicture.Crop() メソッドも提供し、ファイルストリームからスライドに画像を挿入する InsertPicture(stream) メソッドも提供しました。詳細は以下の内容を読んでください。

このリリースで行われた変更のリストは次のとおりです
カテゴリー ID 説明
New feature SPIREPPT-1965 スライド画像の切り抜きをサポートしました。
SlidePicture slidePicture =    (SlidePicture)presentation.Slides[0].Shapes[0];
slidePicture.Crop(float x, float y, float   width, float height);
New feature SPIREPPT-1984 ファイルストリームからスライドに画像を挿入するInsertPicture(stream)メソッドを提供しました。
presentation.Slides[0].Shapes[0].InsertPicture(Stream stream)
New feature - PowerPoint 2016の新たに追加されたグラフ・タイプの作成をサポートしました、すなわちWaterfall、Treemap、Boxandwhisker、SunBurst、ヒストグラム、パレート。
  public void CreateWaterFall(Presentation ppt)
  {
      IChart chart = ppt.Slides[0].Shapes.AppendChart(ChartType.WaterFall, new RectangleF(50, 50, 500, 400), false);
      chart.ChartData[0, 1].Text = "Series 1";
      string[] categories = { "Category 1", "Category 2", "Category 3", "Category 4", "Category 5", "Category 6", "Category 7" };
      for (int i = 0; i < categories.Length; i++)
      {
          chart.ChartData[i + 1, 0].Text = categories[i];
      }
      double[] values = { 100, 20, 50, -40, 130, -60, 70 };
      for (int i = 0; i < values.Length; i++)
      {
          chart.ChartData[i + 1, 1].NumberValue = values[i];
      }
      chart.Series.SeriesLabel = chart.ChartData[0, 1, 0, 1];
      chart.Categories.CategoryLabels = chart.ChartData[1, 0, categories.Length, 0];
      chart.Series[0].Values = chart.ChartData[1, 1, values.Length, 1];

      ChartDataPoint chartDataPoint = new ChartDataPoint(chart.Series[0]);
      chartDataPoint.Index = 2;
      chartDataPoint.SetAsTotal = true;
      chart.Series[0].DataPoints.Add(chartDataPoint);
      ChartDataPoint chartDataPoint2 = new ChartDataPoint(chart.Series[0]);
      chartDataPoint2.Index = 5;
      chartDataPoint2.SetAsTotal = true;
      chart.Series[0].DataPoints.Add(chartDataPoint2);
      chart.Series[0].ShowConnectorLines = true;
      chart.Series[0].DataLabels.LabelValueVisible = true;
      chart.ChartLegend.Position = ChartLegendPositionType.Right;
      chart.ChartTitle.TextProperties.Text = "WaterFall";
  }
  public void CreateTreeMap(Presentation ppt)
  {
      IChart chart = ppt.Slides[0].Shapes.AppendChart(ChartType.TreeMap, new RectangleF(50, 50, 500, 400), false);
      chart.ChartData[0, 3].Text = "Series 1";

      string[,] categories = {{"Branch 1","Stem 1","Leaf 1"},{"Branch 1","Stem 1","Leaf 2"},{"Branch 1","Stem 1", "Leaf 3"},
           {"Branch 1","Stem 2","Leaf 4"},{"Branch 1","Stem 2","Leaf 5"},{"Branch 1","Stem 2","Leaf 6"},{"Branch 1","Stem 2","Leaf 7"},
           {"Branch 2","Stem 3","Leaf 8"},{"Branch 2","Stem 3","Leaf 9"},{"Branch 2","Stem 4","Leaf 10"},{"Branch 2","Stem 4","Leaf 11"},
           {"Branch 2","Stem 5","Leaf 12"},{"Branch 3","Stem 5","Leaf 13"},{"Branch 3","Stem 6","Leaf 14"},{"Branch 3","Stem 6","Leaf 15"}};

      for (int i = 0; i < 15; i++)
      {
          for (int j = 0; j < 3; j++)
              chart.ChartData[i + 1, j].Text = categories[i, j];
      }
      double[] values = { 17, 23, 48, 22, 76, 54, 77, 26, 44, 63, 10, 15, 48, 15, 51 };
      for (int i = 0; i < values.Length; i++)
      {
          chart.ChartData[i + 1, 3].NumberValue = values[i];
      }
      chart.Series.SeriesLabel = chart.ChartData[0, 3, 0, 3];
      chart.Categories.CategoryLabels = chart.ChartData[1, 0, values.Length, 2];
      chart.Series[0].Values = chart.ChartData[1, 3, values.Length, 3];

      chart.Series[0].DataLabels.CategoryNameVisible = true;
      chart.Series[0].TreeMapLabelOption = TreeMapLabelOption.Banner;
      chart.ChartTitle.TextProperties.Text = "TreeMap";

      chart.HasLegend = true;
      chart.ChartLegend.Position = ChartLegendPositionType.Top;
  }
  public void CreateSunBurs(Presentation ppt)
  {
      IChart chart = ppt.Slides[0].Shapes.AppendChart(ChartType.SunBurst, new RectangleF(50, 50, 500, 400), false);
      chart.ChartData[0, 3].Text = "Series 1";

      string[,] categories = {{"Branch 1","Stem 1","Leaf 1"},{"Branch 1","Stem 1","Leaf 2"},{"Branch 1","Stem 1", "Leaf 3"},
           {"Branch 1","Stem 2","Leaf 4"},{"Branch 1","Stem 2","Leaf 5"},{"Branch 1","Leaf 6",null},{"Branch 1","Leaf 7", null},
           {"Branch 2","Stem 3","Leaf 8"},{"Branch 2","Leaf 9",null},{"Branch 2","Stem 4","Leaf 10"},{"Branch 2","Stem 4","Leaf 11"},
           {"Branch 2","Stem 5","Leaf 12"},{"Branch 3","Stem 5","Leaf 13"},{"Branch 3","Stem 6","Leaf 14"},{"Branch 3","Leaf 15",null}};

      for (int i = 0; i < 15; i++)
      {
          for (int j = 0; j < 3; j++)
              chart.ChartData[i + 1, j].Value = categories[i, j];
      }
      double[] values = { 17, 23, 48, 22, 76, 54, 77, 26, 44, 63, 10, 15, 48, 15, 51 };
      for (int i = 0; i < values.Length; i++)
      {
          chart.ChartData[i + 1, 3].NumberValue = values[i];
      }
      chart.Series.SeriesLabel = chart.ChartData[0, 3, 0, 3];
      chart.Categories.CategoryLabels = chart.ChartData[1, 0, values.Length, 2];
      chart.Series[0].Values = chart.ChartData[1, 3, values.Length, 3];

      chart.Series[0].DataLabels.CategoryNameVisible = true;

      chart.ChartTitle.TextProperties.Text = "SunBurst";

      chart.HasLegend = true;
      chart.ChartLegend.Position = ChartLegendPositionType.Top;
  }
  public void CreatePareto(Presentation ppt)
  {
      IChart chart = ppt.Slides[0].Shapes.AppendChart(ChartType.Pareto, new RectangleF(50, 50, 500, 400), false);

      chart.ChartData[0, 1].Text = "Series 1";

      string[] categories = { "Category 1", "Category 2", "Category 4", "Category 3", "Category 4", "Category 2", "Category 1",
          "Category 1", "Category 3", "Category 2", "Category 4", "Category 2", "Category 3",
          "Category 1", "Category 3", "Category 2", "Category 4", "Category 1", "Category 1",
          "Category 3", "Category 2", "Category 4", "Category 1", "Category 1", "Category 3",
          "Category 2", "Category 4", "Category 1"};
      for (int i = 0; i < categories.Length; i++)
      {
          chart.ChartData[i + 1, 0].Text = categories[i];
      }

      double[] values = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
      for (int i = 0; i < values.Length; i++)
      {
          chart.ChartData[i + 1, 1].NumberValue = values[i];
      }
      chart.Series.SeriesLabel = chart.ChartData[0, 1, 0, 1];
      chart.Categories.CategoryLabels = chart.ChartData[1, 0, categories.Length, 0];
      chart.Series[0].Values = chart.ChartData[1, 1, values.Length, 1];

      chart.PrimaryCategoryAxis.IsBinningByCategory = true;

      chart.Series[1].Line.FillFormat.FillType = FillFormatType.Solid;
      chart.Series[1].Line.FillFormat.SolidFillColor.Color = Color.Red;

      chart.ChartTitle.TextProperties.Text = "Pareto";

      chart.HasLegend = true;
      chart.ChartLegend.Position = ChartLegendPositionType.Bottom;
  }
  public void CreateHistogram(Presentation ppt)
  {
      IChart chart = ppt.Slides[0].Shapes.AppendChart(ChartType.Histogram, new RectangleF(50, 50, 500, 400), false);
      chart.ChartData[0, 0].Text = "Series 1";
      double[] values = { 1, 1, 1, 3, 3, 3, 3, 5, 5, 5, 8, 8, 8, 9, 9, 9, 12, 12, 13, 13, 17, 17, 17, 19,
          19, 19, 25, 25, 25, 25, 25, 25, 25, 25, 29, 29, 29, 29, 32, 32, 33, 33, 35, 35, 41, 41, 44, 45, 49, 49 };

      for (int i = 0; i < values.Length; i++)
      {
          chart.ChartData[i + 1, 1].NumberValue = values[i];
      }
      chart.Series.SeriesLabel = chart.ChartData[0, 0, 0, 0];
      chart.Series[0].Values = chart.ChartData[1, 0, values.Length, 0];

      chart.PrimaryCategoryAxis.NumberOfBins = 7;

      chart.PrimaryCategoryAxis.GapWidth = 20;

      chart.ChartTitle.TextProperties.Text = "Histogram";

      chart.ChartLegend.Position = ChartLegendPositionType.Bottom;
  }
  public void CreateBoxAndWhisker(Presentation ppt)
  {
      IChart chart = ppt.Slides[0].Shapes.AppendChart(ChartType.BoxAndWhisker, new RectangleF(50, 50, 500, 400), false);
      string[] seriesLabel = { "Series 1", "Series 2", "Series 3" };


      for (int i = 0; i < seriesLabel.Length; i++)
      {

          chart.ChartData[0, i + 1].Text = "Series 1";
      }
      string[] categories = {"Category 1", "Category 1", "Category 1", "Category 1", "Category 1", "Category 1", "Category 1",
           "Category 2", "Category 2", "Category 2", "Category 2", "Category 2", "Category 2",
           "Category 3", "Category 3", "Category 3", "Category 3", "Category 3"};
      for (int i = 0; i < categories.Length; i++)
      {
          chart.ChartData[i + 1, 0].Text = categories[i];
      }
      double[,] values = new double[18, 3]{{-7,-3,-24},{-10,1,11},{-28,-6,34},{47,2,-21},{35,17,22},{-22,15,19},{17,-11,25},
                       {-30,18,25},{49,22,56},{37,22,15},{-55,25,31},{14,18,22},{18,-22,36},{-45,25,-17},
                       {-33,18,22},{18,2,-23},{-33,-22,10},{10,19,22}};

      for (int i = 0; i < seriesLabel.Length; i++)
      {
          for (int j = 0; j < categories.Length; j++)
          {
              chart.ChartData[j + 1, i + 1].NumberValue = values[j, i];
          }
      }
      chart.Series.SeriesLabel = chart.ChartData[0, 1, 0, seriesLabel.Length];
      chart.Categories.CategoryLabels = chart.ChartData[1, 0, categories.Length, 0];

      chart.Series[0].Values = chart.ChartData[1, 1, categories.Length, 1];
      chart.Series[1].Values = chart.ChartData[1, 2, categories.Length, 2];
      chart.Series[2].Values = chart.ChartData[1, 3, categories.Length, 3];

      chart.Series[0].ShowInnerPoints = false;
      chart.Series[0].ShowOutlierPoints = true;
      chart.Series[0].ShowMeanMarkers = true;
      chart.Series[0].ShowMeanLine = true;
      chart.Series[0].QuartileCalculationType = QuartileCalculation.ExclusiveMedian;

      chart.Series[1].ShowInnerPoints = false;
      chart.Series[1].ShowOutlierPoints = true;
      chart.Series[1].ShowMeanMarkers = true;
      chart.Series[1].ShowMeanLine = true;
      chart.Series[1].QuartileCalculationType = QuartileCalculation.InclusiveMedian;

      chart.Series[2].ShowInnerPoints = false;
      chart.Series[2].ShowOutlierPoints = true;
      chart.Series[2].ShowMeanMarkers = true;
      chart.Series[2].ShowMeanLine = true;
      chart.Series[2].QuartileCalculationType = QuartileCalculation.ExclusiveMedian;

      chart.HasLegend = true;
      chart.ChartTitle.TextProperties.Text = "BoxAndWhisker";
      chart.ChartLegend.Position = ChartLegendPositionType.Top;
  }
ここで Spire. Presentation 7.7.5 をダウンロードする

Spire.Office for Java 7.7.1のリリースを発表できることをうれしく思います。このバージョンでは、Spire.Doc for Javaが、Wordファイルを比較するときに、比較レベルの設定をサポートしました。 Spire.XLS for Javaは、グラフシリーズのマークにカスタムピクチャを埋めることをサポートしました。 さらに、多くの既知のバグが正常に修正されました。詳細は以下の内容を読んでください。

ここで Spire.Office for Java 7.7.1 をダウンロードする:

このリリースで行われた変更のリストは次のとおりです

Spire.Doc for Java

カテゴリー ID 説明
New feature - Wordファイルを比較するときに、比較レベルの設定をサポートしました。
Document doc1 = new Document();
doc1.loadFromFile("input1.docx");
Document doc2 = new Document();
doc2.loadFromFile("input2.docx");
doc1.compare(doc2,"user");
//setting comparison level
CompareOptions options = new CompareOptions();
options.setLevel(ComparisonLevel.Character);
doc1.saveToFile("result.docx", FileFormat.Docx_2013);
Bug SPIREDOC-7530 2 つの Word ファイルをマージした後、コンテンツが正しくない問題を修正しました。
Bug SPIREDOC-7625 2 つの Word ファイルを比較した後、結果が正しくない問題を修正しました。
Bug SPIREDOC-7674 WordファイルをPDFに変換した後、画像の位置が正しくない問題を修正しました。
Bug SPIREDOC-7776 Word ファイルを画像に変換した後、コンテンツが正しくない問題を修正しました。
Bug SPIREDOC-7799
SPIREDOC-7818
SPIREDOC-7890
SPIREDOC-7891
Word ファイルを PDF に変換した後、コンテンツの位置が変更される問題を修正しました。
Bug SPIREDOC-7818
SPIREDOC-7971
取得文字数が正しくない問題を修正しました。
Bug SPIREDOC-7840 注釈を添加した後、保存された doc 形式のファイルが正しくない問題を修正しました。
Bug SPIREDOC-7891 Word ファイルを PDF に変換した後、テキストコンテンツの一部が失われる問題を修正しました。
Bug SPIREDOC-7921 Word ファイルを PDF に変換した後、コンテンツが正しくない問題を修正しました。
Bug SPIREDOC-7940 Word ファイルを PDF に変換した後、改行位置が変更された問題が修正されました。
Bug SPIREDOC-7953 改訂を受け入れ、注釈を消去するときにアプリケーションが 「IndexOutOfBoundsException」をスローする問題を修正しました。
Bug SPIREDOC-7970 HTML を添加するときに、アプリケーションが 「The local name for elements or attributes cannot be null or an empty string」 をスローする問題を修正しました。
Bug SPIREDOC-7983 WordファイルをPDFに変換するときに、アプリケーションが「IllegalStateException」をスローする問題を修正しました。
Bug SPIREDOC-8003 ウイルス スキャン ツールを使用して検出中にエラーが発生する問題を修正します。
Bug SPIREDOC-8077 jdk 11、jdk 17などの高いJDKバージョンで使用したときに、アプリケーションが「WindowsPreferences.WindowsRegOpenKey(int,[B,int)」をスローする問題を修正しました。

Spire.XLS for Java

カテゴリー ID 説明
New feature SPIREXLS-3948 グラフシリーズのマークにカスタムピクチャを埋めることをサポートしました。
IShapeFill markerFill = chart.getSeries().get(0).getDataFormat().getMarkerFill();
markerFill.customPicture("pic.png");
markerFill.setTexture(...);
markerFill.SetPattern(...);
//If use pattern filling, foreground color and backgroud color are needed. 
markerFill.setForeColor(...);
markerFill.setBackColor(...);
New feature - UOS形式のドキュメントのロードと保存をサポートしました。
Workbook workbook = new Workbook();
workbook.loadFromFile("input.uos");
workbook.saveToFile("output.uos", FileFormat.UOS);
Bug SPIREXLS-3891 多様な文化名前、地域へのサポートを最適化しました。
Bug SPIREXLS-3899 透視表のデータの更新が正しくない問題が修正されました。
Bug SPIREXLS-3925 グラフを画像に変換した後、スタイルが正しくない問題を修正しました。
Bug SPIREXLS-3930 グラフの傾向線の方程式の読み取りが正しくない問題を修正しました。
Bug SPIREXLS-3931 文書が暗号化されているかどうかの判定エラーの問題を修正しました。
Bug SPIREXLS-3938 HTML を Excel に変換した後、画像の位置が上がる問題を修正しました。
Bug SPIREXLS-3939 Excel を PDF に変換した後、チェック ボックス コントロールの後にテキストが失われる問題を修正しました。

Spire.PDF for Java

カテゴリー ID 説明
Bug SPIREPDF-4764 PDF を Excel に変換した後、セルが正しく分割されない問題を修正しました。
Bug SPIREPDF-5130 PDF を HTM Lに変換するときに、アプリケーションが「Path is empty」をスローする問題を修正しました。
Bug SPIREPDF-5202 SVG を PDF に変換するときに、アプリケーションが「Invalid token 'flex'」をスローする問題を修正しました。
Bug SPIREPDF-5224 PDF を Excel に変換するときに、コンテンツが画像に変わる問題を修正しました。
Bug SPIREPDF-5229 ファイルをマージするときに、ドキュメントの生成に失敗した問題が修正されました。
Bug SPIREPDF-5252 PDF を Word に変換するときに、画像が WPS や携帯電話で開かれて表示されない問題を修正しました。
Bug SPIREPDF-5265 PDF を GrayPd に変換するときに、プログラム保留中の問題を修正しました。
Bug SPIREPDF-5272 テキスト検索時、位置が正しくない問題を修正しました。
Bug SPIREPDF-5285 PDF を画像に変換するときに、コンテンツが失われる問題を修正しました。
Bug SPIREPDF-5286 PDF を PDFA3A に変換するときに、アプリケーションが「NullPointerException」をスローする問題を修正しました。

Spire.XLS 12.7.1のリリースを発表できることを嬉しく思います。 このリリースでは、DataTableのエクスポート時にデータを保持するかどうかを設定する数値フォーマットをサポートしました。 さらに、「UNICODE」 数式の計算もサポートされていました。 また、数式を挿入した後、数式が結果を計算しないなどの既知の問題が修正しました。詳細は以下の内容を読んでください。

このリリースで行われた変更のリストは次のとおりです
カテゴリー ID 説明
New feature SPIREXLS-3944 DataTable のエクスポート時にデータを保持するかどうかを設定する数値フォーマットをサポートしました。 ExportTableOptions options = new ExportTableOptions();
ExportTableOptions options = new ExportTableOptions();
options.KeepDataFormat = false;
DataTable table = sheet.ExportDataTable(1, 1, sheet.LastDataRow, sheet.LastDataColumn, options);
New feature - 「UNICODE」 数式の計算をサポートされていました。
Bug SPIREXLS-3902 ExcelをPDF に変換した後、透視表の列名の位置がずれる問題を修正しました。
Bug SPIREXLS-3957 HTML をロードするときに、アプリケーションが「System. FormatException:Input string was not in a correct format」をスローする問題を修正しました。
Bug SPIREXLS-3966 数式を挿入した後、数式が結果を計算しない問題を修正しました。
Bug SPIREXLS-3967 「CellRange.DisplayedText」プロパティが正しくない値を取得する問題を修正しまました。
Bug SPIREXLS-3971 Excel を PDF に変換するときに、アプリケーションが「System.FormatException: この文字列は有効なDateTimeとして認識されない」をスローする問題を修正しました。
Bug SPIREXLS-3972 連続していない範囲を取得するネームマネージャが null ポインター例外をスローする問題を修正しました。
ここで Spire.XLS 12.7.1 をダウンロードする

Spire.XLS for Java 12.7.0 のリリースを発表できることを嬉しく思います。このリリースでは、グラフシリーズのマークにカスタムピクチャを埋めることをサポートしました。さらに、UOS形式のドキュメントのロードと保存をサポートしました。 また、透視表のデータの更新が正しくないなどの既知の問題が修正しました。詳細は以下の内容を読んでください。

このリリースで行われた変更のリストは次のとおりです
カテゴリー ID 説明
New feature SPIREXLS-3948 グラフシリーズのマークにカスタムピクチャを埋めることをサポートしました。
IShapeFill markerFill = chart.getSeries().get(0).getDataFormat().getMarkerFill();
markerFill.customPicture("pic.png");
markerFill.setTexture(...);
markerFill.SetPattern(...);
//If use pattern filling, foreground color and backgroud color are needed. 
markerFill.setForeColor(...);
markerFill.setBackColor(...);
New feature - UOS形式のドキュメントのロードと保存をサポートしました。
Workbook workbook = new Workbook();
workbook.loadFromFile("input.uos");
workbook.saveToFile("output.uos", FileFormat.UOS);
Bug SPIREXLS-3891 多様な文化名前、地域へのサポートを最適化しました。
Bug SPIREXLS-3899 透視表のデータの更新が正しくない問題が修正されました。
Bug SPIREXLS-3925 グラフを画像に変換した後、スタイルが正しくない問題を修正しました。
Bug SPIREXLS-3930 グラフの傾向線の方程式の読み取りが正しくない問題を修正しました。
Bug SPIREXLS-3931 文書が暗号化されているかどうかの判定エラーの問題を修正しました。
Bug SPIREXLS-3938 HTML を Excel に変換した後、画像の位置が上がる問題を修正しました。
Bug SPIREXLS-3939 Excel を PDF に変換した後、チェック ボックス コントロールの後にテキストが失われる問題を修正しました。
ここで Spire.XLS for Java12.7.0 をダウンロードする