チュートリアル
簡単にライブラリーを使用するためのチュートリアルコレクション
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 を 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>
以下は、Spire.Doc for Java を使用して、いくつかの段落を含む簡単な Word ドキュメントを作成する手順です。
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();
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
大きな PDF ドキュメントは、電子メールで PDF ファイルを転送したい場合や、限られたストレージ容量のデバイスに PDF ファイルを保存したい場合など、すべての場合に適用されません。その時、PDF ファイルのサイズを圧縮することは、この問題を解決するための完璧な方法かもしれません。この記事では、Spire.PDF for .NET を使用して、C# および VB.NET でプログラムによって PDF ファイルを圧縮する方法を示します。
ここでは、画像、フィールド、コメント、ブックマーク、添付ファイル、埋め込みフォントを削除することによって PDF サイズを小さくすることには触れません。
まず、Spire.PDF for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.PDF
次の手順は、Spire.PDF for .NET を使用して PDFファイルを圧縮する方法を示しています
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
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Word ドキュメントに外部に漏れては困る機密情報が含まれている場合、パスワードがないと開けないように暗号化することができます。この記事では、Spire.Doc for Java を使用して Word ドキュメントを暗号化する方法と、パスワードで保護されたドキュメントを復号化する方法を紹介します。
まず、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>
Spire.Doc for Java では、Document.encrypt(java.lang.String password) メソッドを用いて Word ドキュメントをパスワード付きで暗号化することができます。主な手順は以下のとおりです。
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);
}
}
Spire.Doc for Java では、Document.removeEncryption() メソッドを使用して、パスワードで保護された Word ドキュメントを復号化することができます。以下、詳しい手順を説明します。
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);
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するには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軸の内容が正しく表示されない問題が修正されました。 |
XML はテキストマークアップ言語であり、主に任意のデータを保存して転送するために使用されます。XML ファイルは簡潔、普遍的、使いやすいなどの特徴があり、ネットワークサーバの中で特に人気があります。XML と HTML はいずれもテキストマークアップ言語であり、類似性があるが、両者の応用シーンは異なります。XML は主にデータの保存と転送に使用されるが、HTML は Web ページのコンテンツを表示するために使用される。この記事では、Spire.Doc for .NET を使用して、C# および VB.NET でプログラムによって Word を XML に変換する方法を示します。
まず、Spire.Doc for.NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.Doc
次の手順は、Spire.Doc for .NET を使用して Word を XML に変換する方法を示しています。
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
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するには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.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.Office for Java 7.7.1のリリースを発表できることをうれしく思います。このバージョンでは、Spire.Doc for Javaが、Wordファイルを比較するときに、比較レベルの設定をサポートしました。 Spire.XLS 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)」をスローする問題を修正しました。 |
カテゴリー | 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 に変換した後、チェック ボックス コントロールの後にテキストが失われる問題を修正しました。 |
カテゴリー | 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 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 に変換した後、チェック ボックス コントロールの後にテキストが失われる問題を修正しました。 |