チュートリアル
簡単にライブラリーを使用するためのチュートリアルコレクション
フォームでは、テキスト、日付、画像、はい/いいえ形式の質問など、さまざまなタイプの情報のプレースホルダーを作成できます。これにより、読み手はどのような種類の情報を記載すればよいかがわかりやすくなり、また、すべての情報が同じように書式設定されるようにすることができます。Word ドキュメントで記入可能なフォームを作成するためには、以下のツールを使用する必要があります。
Word ドキュメントのコンテンツ コントロールは、ユーザーが構造化されたドキュメントを作成できるようにするためのコンテンツのコンテナです。構造化されたドキュメントでは、ドキュメント内でコンテンツが表示される場所を制御します。Word 2013 では、基本的に10種類のコンテンツ コントロールが利用可能です。この記事では、Spire.Doc for .NET を使用して、以下の7つの一般的なコンテンツ コントロールで構成される Word ドキュメントに記入可能なフォームを作成する方法を説明します。
コンテンツ コントロール | 説明 |
テキスト | テキストフィールドはプレーンテキストに限定されるため、書式を含めることはできません。 |
リッチ テキスト | テキストフィールドで、フォーマットされたテキストや、テーブル、画像、その他のコンテンツコントロールなどのアイテムを含むことができます。 |
画像 | 1枚の画像を含むことができます。 |
ドロップダウン リスト | ドロップダウンリストは、ユーザーが選択できるように、あらかじめ定義されたアイテムのリストを表示します。 |
コンボ ボックス | コンボボックスは、ユーザーがリストの中からあらかじめ定義された値を選択したり、コントロールのテキストボックスに独自の値を入力したりすることができるものです。 |
チェック ボックス | チェックボックスは、ユーザーが「はい(チェック済み)」か「いいえ(チェックなし)」かの二者択一を行うことができるグラフィカルなウィジェットです。 |
日付選択 | ユーザーが日付を選択できるカレンダーコントロールが含まれる。 |
まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.Doc
Spire.Doc for .NET が提供する StructureDocumentTagInline クラスは、段落内の インライン構造(DrawingML のオブジェクトやフィールドなど)に対する構造化ドキュメントタグを作成するために使用されます。このクラスの下にある SDTProperties プロパティと SDTContent プロパティは、現在の構造化ドキュメントタグのプロパティとコンテンツを指定するために使用します。以下は、Word ドキュメントにコンテンツコントロールを持つ記入可能なフォームを作成するための詳細な手順です。
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System;
using System.Drawing;
namespace CreateFormInWord
{
class Program
{
static void Main(string[] args)
{
//Documentのオブジェクトを作成する
Document doc = new Document();
//セクションを追加する
Section section = doc.AddSection();
//表を追加する
Table table = section.AddTable(true);
table.ResetCells(7, 2);
//1列目のセルにテキストを追加する
Paragraph paragraph = table.Rows[0].Cells[0].AddParagraph();
paragraph.GetStyle().CharacterFormat.FontName = "BIZ UDGothic";
paragraph.AppendText("テキスト");
paragraph = table.Rows[1].Cells[0].AddParagraph();
paragraph.AppendText("リッチ テキスト");
paragraph = table.Rows[2].Cells[0].AddParagraph();
paragraph.AppendText("画像");
paragraph = table.Rows[3].Cells[0].AddParagraph();
paragraph.AppendText("ドロップダウン リスト");
paragraph = table.Rows[4].Cells[0].AddParagraph();
paragraph.AppendText("チェック ボックス");
paragraph = table.Rows[5].Cells[0].AddParagraph();
paragraph.AppendText("コンボ ボックス");
paragraph = table.Rows[6].Cells[0].AddParagraph();
paragraph.AppendText("日付選択");
//セル(0,1)にプレーンテキストコンテンツコントロールを追加する
paragraph = table.Rows[0].Cells[1].AddParagraph();
StructureDocumentTagInline sdt = new StructureDocumentTagInline(doc);
paragraph.ChildObjects.Add(sdt);
sdt.SDTProperties.SDTType = SdtType.Text;
sdt.SDTProperties.Alias = "テキスト";
sdt.SDTProperties.Tag = "テキスト";
sdt.SDTProperties.IsShowingPlaceHolder = true;
SdtText text = new SdtText(true);
text.IsMultiline = false;
sdt.SDTProperties.ControlProperties = text;
TextRange tr = new TextRange(doc);
tr.Text = "ここをクリックまたはタップしてテキストを入力してください。";
sdt.SDTContent.ChildObjects.Add(tr);
//セル(1,1)にリッチテキストコンテンツコントロールを追加する
paragraph = table.Rows[1].Cells[1].AddParagraph();
sdt = new StructureDocumentTagInline(doc);
paragraph.ChildObjects.Add(sdt);
sdt.SDTProperties.SDTType = SdtType.RichText;
sdt.SDTProperties.Alias = "リッチ テキスト";
sdt.SDTProperties.Tag = "リッチ テキスト";
sdt.SDTProperties.IsShowingPlaceHolder = true;
text = new SdtText(true);
text.IsMultiline = false;
sdt.SDTProperties.ControlProperties = text;
tr = new TextRange(doc);
tr.Text = "ここをクリックまたはタップしてテキストを入力してください。";
sdt.SDTContent.ChildObjects.Add(tr);
//セル(2,1)に画像コンテンツコントロールを追加する
paragraph = table.Rows[2].Cells[1].AddParagraph();
sdt = new StructureDocumentTagInline(doc);
paragraph.ChildObjects.Add(sdt);
sdt.SDTProperties.SDTType = SdtType.Picture;
sdt.SDTProperties.Alias = "画像";
sdt.SDTProperties.Tag = "画像";
SdtPicture sdtPicture = new SdtPicture();
sdt.SDTProperties.ControlProperties = sdtPicture;
DocPicture pic = new DocPicture(doc);
pic.LoadImage(Image.FromFile("C:\\Users\\Sirion\\Desktop\\画像を選択.png"));
sdt.SDTContent.ChildObjects.Add(pic);
//セル(3,1)にドロップダウンリストコンテンツコントロールを追加する
paragraph = table.Rows[3].Cells[1].AddParagraph();
sdt = new StructureDocumentTagInline(doc);
sdt.SDTProperties.SDTType = SdtType.DropDownList;
sdt.SDTProperties.Alias = "ドロップダウン リスト";
sdt.SDTProperties.Tag = "ドロップダウン リスト";
paragraph.ChildObjects.Add(sdt);
SdtDropDownList sddl = new SdtDropDownList();
sddl.ListItems.Add(new SdtListItem("アイテムを選択してください。", "1"));
sddl.ListItems.Add(new SdtListItem("アイテム 2", "2"));
sddl.ListItems.Add(new SdtListItem("アイテム 3", "3"));
sddl.ListItems.Add(new SdtListItem("アイテム 4", "4"));
sdt.SDTProperties.ControlProperties = sddl;
tr = new TextRange(doc);
tr.Text = sddl.ListItems[0].DisplayText;
sdt.SDTContent.ChildObjects.Add(tr);
//セル(4,1)にチェックボックスコンテンツコントロールを2つ追加する
paragraph = table.Rows[4].Cells[1].AddParagraph();
sdt = new StructureDocumentTagInline(doc);
paragraph.ChildObjects.Add(sdt);
sdt.SDTProperties.SDTType = SdtType.CheckBox;
SdtCheckBox scb = new SdtCheckBox();
sdt.SDTProperties.ControlProperties = scb;
tr = new TextRange(doc);
sdt.ChildObjects.Add(tr);
scb.Checked = false;
paragraph.AppendText(" オプション 1");
paragraph = table.Rows[4].Cells[1].AddParagraph();
sdt = new StructureDocumentTagInline(doc);
paragraph.ChildObjects.Add(sdt);
sdt.SDTProperties.SDTType = SdtType.CheckBox;
scb = new SdtCheckBox();
sdt.SDTProperties.ControlProperties = scb;
tr = new TextRange(doc);
sdt.ChildObjects.Add(tr);
scb.Checked = false;
paragraph.AppendText(" オプション 2");
//セル(5,1)にコンボボックスコンテンツコントロールを追加する
paragraph = table.Rows[5].Cells[1].AddParagraph();
sdt = new StructureDocumentTagInline(doc);
paragraph.ChildObjects.Add(sdt);
sdt.SDTProperties.SDTType = SdtType.ComboBox;
sdt.SDTProperties.Alias = "コンボ ボックス";
sdt.SDTProperties.Tag = "コンボ ボックス";
SdtComboBox cb = new SdtComboBox();
cb.ListItems.Add(new SdtListItem("アイテムを選択してください。"));
cb.ListItems.Add(new SdtListItem("アイテム 2"));
cb.ListItems.Add(new SdtListItem("アイテム 3"));
sdt.SDTProperties.ControlProperties = cb;
tr = new TextRange(doc);
tr.Text = cb.ListItems[0].DisplayText;
sdt.SDTContent.ChildObjects.Add(tr);
//セル(6,1)に日付選択コンテンツコントロールを追加する
paragraph = table.Rows[6].Cells[1].AddParagraph();
sdt = new StructureDocumentTagInline(doc);
paragraph.ChildObjects.Add(sdt);
sdt.SDTProperties.SDTType = SdtType.DatePicker;
sdt.SDTProperties.Alias = "日付選択";
sdt.SDTProperties.Tag = "日付選択";
SdtDate date = new SdtDate();
date.CalendarType = CalendarType.Default;
date.DateFormat = "yyyy.MM.dd";
date.FullDate = DateTime.Now;
sdt.SDTProperties.ControlProperties = date;
tr = new TextRange(doc);
tr.Text = "クリックまたはタップして日付を入力してください。";
sdt.SDTContent.ChildObjects.Add(tr);
//ユーザーがフォームフィールドを編集することのみを許可する
doc.Protect(ProtectionType.AllowOnlyFormFields, "permission-psd");
//ドキュメントを保存する
doc.SaveToFile("記入可能なフォーム.docx", FileFormat.Docx2013);
}
}
}
Imports Spire.Doc
Imports Spire.Doc.Documents
Imports Spire.Doc.Fields
Imports System
Imports System.Drawing
Namespace CreateFormInWord
Class Program
Shared Sub Main(ByVal args() As String)
'Documentのオブジェクトを作成する
Dim doc As Document = New Document()
'セクションを追加する
Dim section As Section = doc.AddSection()
'表を追加する
Dim table As Table = section.AddTable(True)
table.ResetCells(7, 2)
'1列目のセルにテキストを追加する
Dim paragraph As Paragraph = table.Rows(0).Cells(0).AddParagraph()
paragraph.GetStyle().CharacterFormat.FontName = "BIZ UDGothic"
paragraph.AppendText("テキスト")
paragraph = table.Rows(1).Cells(0).AddParagraph()
paragraph.AppendText("リッチ テキスト")
paragraph = table.Rows(2).Cells(0).AddParagraph()
paragraph.AppendText("画像")
paragraph = table.Rows(3).Cells(0).AddParagraph()
paragraph.AppendText("ドロップダウン リスト")
paragraph = table.Rows(4).Cells(0).AddParagraph()
paragraph.AppendText("チェック ボックス")
paragraph = table.Rows(5).Cells(0).AddParagraph()
paragraph.AppendText("コンボ ボックス")
paragraph = table.Rows(6).Cells(0).AddParagraph()
paragraph.AppendText("日付選択")
'セル(0,1)にプレーンテキストコンテンツコントロールを追加する
paragraph = table.Rows(0).Cells(1).AddParagraph()
Dim sdt As StructureDocumentTagInline = New StructureDocumentTagInline(doc)
paragraph.ChildObjects.Add(sdt)
sdt.SDTProperties.SDTType = SdtType.Text
sdt.SDTProperties.Alias = "テキスト"
sdt.SDTProperties.Tag = "テキスト"
sdt.SDTProperties.IsShowingPlaceHolder = True
Dim text As SdtText = New SdtText(True)
text.IsMultiline = False
sdt.SDTProperties.ControlProperties = text
Dim tr As TextRange = New TextRange(doc)
tr.Text = "ここをクリックまたはタップしてテキストを入力してください。"
sdt.SDTContent.ChildObjects.Add(tr)
'セル(1,1)にリッチテキストコンテンツコントロールを追加する
paragraph = table.Rows(1).Cells(1).AddParagraph()
sdt = New StructureDocumentTagInline(doc)
paragraph.ChildObjects.Add(sdt)
sdt.SDTProperties.SDTType = SdtType.RichText
sdt.SDTProperties.Alias = "リッチ テキスト"
sdt.SDTProperties.Tag = "リッチ テキスト"
sdt.SDTProperties.IsShowingPlaceHolder = True
text = New SdtText(True)
text.IsMultiline = False
sdt.SDTProperties.ControlProperties = text
tr = New TextRange(doc)
tr.Text = "ここをクリックまたはタップしてテキストを入力してください。"
sdt.SDTContent.ChildObjects.Add(tr)
'セル(2,1)に画像コンテンツコントロールを追加する
paragraph = table.Rows(2).Cells(1).AddParagraph()
sdt = New StructureDocumentTagInline(doc)
paragraph.ChildObjects.Add(sdt)
sdt.SDTProperties.SDTType = SdtType.Picture
sdt.SDTProperties.Alias = "画像"
sdt.SDTProperties.Tag = "画像"
Dim sdtPicture As SdtPicture = New SdtPicture()
sdt.SDTProperties.ControlProperties = sdtPicture
Dim pic As DocPicture = New DocPicture(doc)
pic.LoadImage(Image.FromFile("C:\\Users\\Sirion\\Desktop\\画像を選択.png"))
sdt.SDTContent.ChildObjects.Add(pic)
'セル(3,1)にドロップダウンリストコンテンツコントロールを追加する
paragraph = table.Rows(3).Cells(1).AddParagraph()
sdt = New StructureDocumentTagInline(doc)
sdt.SDTProperties.SDTType = SdtType.DropDownList
sdt.SDTProperties.Alias = "ドロップダウン リスト"
sdt.SDTProperties.Tag = "ドロップダウン リスト"
paragraph.ChildObjects.Add(sdt)
Dim sddl As SdtDropDownList = New SdtDropDownList()
sddl.ListItems.Add(New SdtListItem("アイテムを選択してください。", "1"))
sddl.ListItems.Add(New SdtListItem("アイテム 2", "2"))
sddl.ListItems.Add(New SdtListItem("アイテム 3", "3"))
sddl.ListItems.Add(New SdtListItem("アイテム 4", "4"))
sdt.SDTProperties.ControlProperties = sddl
tr = New TextRange(doc)
tr.Text = sddl.ListItems(0).DisplayText
sdt.SDTContent.ChildObjects.Add(tr)
'セル(4,1)にチェックボックスコンテンツコントロールを2つ追加する
paragraph = table.Rows(4).Cells(1).AddParagraph()
sdt = New StructureDocumentTagInline(doc)
paragraph.ChildObjects.Add(sdt)
sdt.SDTProperties.SDTType = SdtType.CheckBox
Dim scb As SdtCheckBox = New SdtCheckBox()
sdt.SDTProperties.ControlProperties = scb
tr = New TextRange(doc)
sdt.ChildObjects.Add(tr)
scb.Checked = False
paragraph.AppendText(" オプション 1")
paragraph = table.Rows(4).Cells(1).AddParagraph()
sdt = New StructureDocumentTagInline(doc)
paragraph.ChildObjects.Add(sdt)
sdt.SDTProperties.SDTType = SdtType.CheckBox
scb = New SdtCheckBox()
sdt.SDTProperties.ControlProperties = scb
tr = New TextRange(doc)
sdt.ChildObjects.Add(tr)
scb.Checked = False
paragraph.AppendText(" オプション 2")
'セル(5,1)にコンボボックスコンテンツコントロールを追加する
paragraph = table.Rows(5).Cells(1).AddParagraph()
sdt = New StructureDocumentTagInline(doc)
paragraph.ChildObjects.Add(sdt)
sdt.SDTProperties.SDTType = SdtType.ComboBox
sdt.SDTProperties.Alias = "コンボ ボックス"
sdt.SDTProperties.Tag = "コンボ ボックス"
Dim cb As SdtComboBox = New SdtComboBox()
cb.ListItems.Add(New SdtListItem("アイテムを選択してください。"))
cb.ListItems.Add(New SdtListItem("アイテム 2"))
cb.ListItems.Add(New SdtListItem("アイテム 3"))
sdt.SDTProperties.ControlProperties = cb
tr = New TextRange(doc)
tr.Text = cb.ListItems(0).DisplayText
sdt.SDTContent.ChildObjects.Add(tr)
'セル(6,1)に日付選択コンテンツコントロールを追加する
paragraph = table.Rows(6).Cells(1).AddParagraph()
sdt = New StructureDocumentTagInline(doc)
paragraph.ChildObjects.Add(sdt)
sdt.SDTProperties.SDTType = SdtType.DatePicker
sdt.SDTProperties.Alias = "日付選択"
sdt.SDTProperties.Tag = "日付選択"
Dim date As SdtDate = New SdtDate()
Date.CalendarType = CalendarType.Default
Date.DateFormat = "yyyy.MM.dd"
Date.FullDate = DateTime.Now
sdt.SDTProperties.ControlProperties = Date
tr = New TextRange(doc)
tr.Text = "クリックまたはタップして日付を入力してください。"
sdt.SDTContent.ChildObjects.Add(tr)
'ユーザーがフォームフィールドを編集することのみを許可する
doc.Protect(ProtectionType.AllowOnlyFormFields, "permission-psd")
'ドキュメントを保存する
doc.SaveToFile("記入可能なフォーム.docx", FileFormat.Docx2013)
End Sub
End Class
End Namespace
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Word ドキュメントでは、他の人が情報を入力するために使用できるフォームを作成することができます。記入可能なフォームは、さまざまな用途で使用されます。人事部では、従業員やコンサルタントの情報を収集するためにフォームを使用します。営業部門は、製品やサービスに対する顧客の満足度を調査するためにフォームを使用します。組織は、会員、学生、顧客を登録するためにフォームを使用します。フォームを作成する際に使用するツールには、以下のようなものがあります:
Word ドキュメントのコンテンツコントロールは、ユーザーが構造化されたドキュメントを構築できるようにするためのコンテンツのコンテナです。構造化されたドキュメントでは、ドキュメント内でコンテンツが表示される場所を制御します。Word 2013 では、基本的に10種類のコンテンツコントロールが利用可能です。この記事では、Spire.Doc for Java を使用して、以下の7つの一般的なコンテンツコントロールで構成される Word ドキュメントに記入可能なフォームを作成する方法を中心に説明します。
コンテンツ コントロール | 説明 |
テキスト | テキストフィールドはプレーンテキストに限定されるため、書式を含めることはできません。 |
リッチ テキスト | テキストフィールドで、フォーマットされたテキストや、テーブル、画像、その他のコンテンツコントロールなどのアイテムを含むことができます。 |
画像 | 1枚の画像を含むことができます。 |
ドロップダウン リスト | ドロップダウンリストは、ユーザーが選択できるように、あらかじめ定義されたアイテムのリストを表示します。 |
コンボ ボックス | コンボボックスは、ユーザーがリストの中からあらかじめ定義された値を選択したり、コントロールのテキストボックスに独自の値を入力したりすることができるものです。 |
チェック ボックス | チェックボックスは、ユーザーが「はい(チェック済み)」か「いいえ(チェックなし)」かの二者択一を行うことができるグラフィカルなウィジェットです。 |
日付選択 | ユーザーが日付を選択できるカレンダーコントロールが含まれる。 |
まず、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>11.4.2</version>
</dependency>
</dependencies>
Spire.Doc for Java が提供する StructureDocumentTagInline クラスは、段落内のインラインレベルの構造(DrawingML オブジェクト、フィールドなど)に対する構造化文書タグを作成するために使用する。このクラスの下にある SDTProperties プロパティと SDTContent プロパティは、現在の構造化文書タグのプロパティとコンテンツを指定するために使用されるものとする。以下は、Word ドキュメントにコンテンツコントロールを備えた記入可能なフォームを作成するための詳細な手順です。
import com.spire.doc.*;
import com.spire.doc.documents.*;
import com.spire.doc.fields.DocPicture;
import com.spire.doc.fields.TextRange;
import com.spire.pdf.graphics.PdfTrueTypeFont;
import java.util.Date;
public class CreateFillableForm {
public static void main(String[] args) {
//Documentのオブジェクトを作成する
Document doc = new Document();
//セクションを追加する
Section section = doc.addSection();
//表を追加する
Table table = section.addTable(true);
table.resetCells(7, 2);
//1列目のセルにテキストを追加する
Paragraph paragraph = table.getRows().get(0).getCells().get(0).addParagraph();
paragraph.getStyle().getCharacterFormat().setFontName("Yu Gothic UI");
paragraph.getStyle().getCharacterFormat().setFontSize(12);
paragraph.appendText("テキスト コンテンツ コントロール");
paragraph = table.getRows().get(1).getCells().get(0).addParagraph();
paragraph.appendText("リッチ テキスト コンテンツ コントロール");
paragraph = table.getRows().get(2).getCells().get(0).addParagraph();
paragraph.appendText("画像コンテンツ コントロール");
paragraph = table.getRows().get(3).getCells().get(0).addParagraph();
paragraph.appendText("ドロップダウン リスト コンテンツ コントロール");
paragraph = table.getRows().get(4).getCells().get(0).addParagraph();
paragraph.appendText("チェック ボックス コンテンツ コントロール");
paragraph = table.getRows().get(5).getCells().get(0).addParagraph();
paragraph.appendText("コンボ ボックス コンテンツ コントロール");
paragraph = table.getRows().get(6).getCells().get(0).addParagraph();
paragraph.appendText("日付選択コンテンツ コントロール");
//セル(0,1)にテキストコンテンツコントロールを追加する
paragraph = table.getRows().get(0).getCells().get(1).addParagraph();
StructureDocumentTagInline sdt = new StructureDocumentTagInline(doc);
paragraph.getChildObjects().add(sdt);
sdt.getSDTProperties().setSDTType(SdtType.Text);
sdt.getSDTProperties().setAlias("テキスト");
sdt.getSDTProperties().setTag("テキスト");
sdt.getSDTProperties().isShowingPlaceHolder(true);
SdtText text = new SdtText(true);
text.isMultiline(false);
sdt.getSDTProperties().setControlProperties(text);
TextRange tr = new TextRange(doc);
tr.setText("ここをクリックまたはタップしてテキストを入力してください。");
sdt.getSDTContent().getChildObjects().add(tr);
//セル(1,1)にリッチテキストコンテンツコントロールを追加する
paragraph = table.getRows().get(1).getCells().get(1).addParagraph();
sdt = new StructureDocumentTagInline(doc);
paragraph.getChildObjects().add(sdt);
sdt.getSDTProperties().setSDTType(SdtType.Rich_Text);
sdt.getSDTProperties().setAlias("リッチ テキスト");
sdt.getSDTProperties().setTag("リッチ テキスト");
sdt.getSDTProperties().isShowingPlaceHolder(true);
text = new SdtText(true);
text.isMultiline(false);
sdt.getSDTProperties().setControlProperties(text);
tr = new TextRange(doc);
tr.setText("ここをクリックまたはタップしてテキストを入力してください。");
sdt.getSDTContent().getChildObjects().add(tr);
//セル(2,1)に画像コンテンツコントロールを追加する
paragraph = table.getRows().get(2).getCells().get(1).addParagraph();
sdt = new StructureDocumentTagInline(doc);
paragraph.getChildObjects().add(sdt);
sdt.getSDTProperties().setSDTType(SdtType.Picture);
sdt.getSDTProperties().setAlias("画像");
sdt.getSDTProperties().setTag("画像");
SdtPicture sdtPicture = new SdtPicture();
sdt.getSDTProperties().setControlProperties(sdtPicture);
DocPicture pic = new DocPicture(doc);
pic.loadImage("C:/画像を選択.png");
sdt.getSDTContent().getChildObjects().add(pic);
//セル(3,1)にドロップダウンリストコンテンツコントロールを追加する
paragraph = table.getRows().get(3).getCells().get(1).addParagraph();
sdt = new StructureDocumentTagInline(doc);
sdt.getSDTProperties().setSDTType(SdtType.Drop_Down_List);
sdt.getSDTProperties().setAlias("ドロップダウン リスト");
sdt.getSDTProperties().setTag("ドロップダウン リスト");
paragraph.getChildObjects().add(sdt);
SdtDropDownList sddl = new SdtDropDownList();
sddl.getListItems().add(new SdtListItem("アイテムを選択してください。", "1"));
sddl.getListItems().add(new SdtListItem("アイテム2", "2"));
sddl.getListItems().add(new SdtListItem("アイテム3", "3"));
sddl.getListItems().add(new SdtListItem("アイテム4", "4"));
sdt.getSDTProperties().setControlProperties(sddl);
tr = new TextRange(doc);
tr.setText(sddl.getListItems().get(0).getDisplayText());
sdt.getSDTContent().getChildObjects().add(tr);
//セル(4,1)にチェックボックスのコンテンツコントロールを2つ追加する
paragraph = table.getRows().get(4).getCells().get(1).addParagraph();
sdt = new StructureDocumentTagInline(doc);
paragraph.getChildObjects().add(sdt);
sdt.getSDTProperties().setSDTType(SdtType.Check_Box);
SdtCheckBox scb = new SdtCheckBox();
sdt.getSDTProperties().setControlProperties(scb);
tr = new TextRange(doc);
sdt.getChildObjects().add(tr);
scb.setChecked(false);
paragraph.appendText("オプション1");
paragraph = table.getRows().get(4).getCells().get(1).addParagraph();
sdt = new StructureDocumentTagInline(doc);
paragraph.getChildObjects().add(sdt);
sdt.getSDTProperties().setSDTType(SdtType.Check_Box);
scb = new SdtCheckBox();
sdt.getSDTProperties().setControlProperties(scb);
tr = new TextRange(doc);
sdt.getChildObjects().add(tr);
scb.setChecked(false);
paragraph.appendText("オプション2");
//セル(5,1)にコンボボックスのコンテンツコントロールを追加する
paragraph = table.getRows().get(5).getCells().get(1).addParagraph();
sdt = new StructureDocumentTagInline(doc);
paragraph.getChildObjects().add(sdt);
sdt.getSDTProperties().setSDTType(SdtType.Combo_Box);
sdt.getSDTProperties().setAlias("コンボ ボックス");
sdt.getSDTProperties().setTag("コンボ ボックス");
SdtComboBox cb = new SdtComboBox();
cb.getListItems().add(new SdtListItem("アイテムを選択してください。"));
cb.getListItems().add(new SdtListItem("アイテム2"));
cb.getListItems().add(new SdtListItem("アイテム3"));
sdt.getSDTProperties().setControlProperties(cb);
tr = new TextRange(doc);
tr.setText(cb.getListItems().get(0).getDisplayText());
sdt.getSDTContent().getChildObjects().add(tr);
//セル(6,1)に日付ピッカーコンテンツコントロールを追加する
paragraph = table.getRows().get(6).getCells().get(1).addParagraph();
sdt = new StructureDocumentTagInline(doc);
paragraph.getChildObjects().add(sdt);
sdt.getSDTProperties().setSDTType(SdtType.Date_Picker);
sdt.getSDTProperties().setAlias("日付選択");
sdt.getSDTProperties().setTag("日付選択");
SdtDate date = new SdtDate();
date.setCalendarType(CalendarType.Default);
date.setDateFormat("yyyy.MM.dd");
date.setFullDate(new Date());
sdt.getSDTProperties().setControlProperties(date);
tr = new TextRange(doc);
tr.setText("クリックまたはタップして日付を入力してください。");
sdt.getSDTContent().getChildObjects().add(tr);
//ユーザーがフォームフィールドを編集することのみを許可する
doc.protect(ProtectionType.Allow_Only_Form_Fields, "password");
//ドキュメントを保存する
doc.saveToFile("記入用フォーム.docx", FileFormat.Docx_2013);
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Spire.Office 8.4.1のリリースを発表できることを嬉しく思います。このバージョンでは、Spire.PDFはPDF文書の印刷速度とPDFを画像に変換する速度を向上しました。Spire.DocはWord 2013のテーブルの新しいスタイルをサポートしています。Spire.SpreadsheetはPDF文書への保存をサポートしています。さらに、多くの既知の問題も修正しました。詳細は以下の内容を読んでください。
このバージョンでは、Spire.Doc,Spire.PDF,Spire.XLS,Spire.Email,Spire.DocViewer, Spire.PDFViewer,Spire.Presentation,Spire.Spreadsheet, Spire.OfficeViewer, Spire.Barcode, Spire.DataExportの最新バージョンが含まれています。
カテゴリー | ID | 説明 |
New feature | SPIREPDF-1096 SPIREPDF-2427 SPIREPDF-2994 SPIREPDF-3836 |
PDFの印刷速度が向上しました。 |
New feature | SPIREPDF-2287 SPIREPDF-4084 |
PDFを画像に変換する速度が向上しました。 |
Bug | SPIREPDF-1608 | Firefoxで暗号化されたPDF文書を開くと、正しいパスワードを入力する際にパスワードが正しくないことを提示する問題が修正されました。 |
Bug | SPIREPDF-3499 | PDFをWordに変換した後にテーブルが失われていた問題が修正されました。 |
Bug | SPIREPDF-3847 | PDFをWordに変換した後にテキストの順序が正しくない問題が修正されました。 |
Bug | SPIREPDF-4078 | PDFをWordに変換した後に内容が乱れる問題が修正されました。 |
Bug | SPIREPDF-5313 | PDF文書の画像を圧縮するとPDF文書が大きくなる問題が修正されました。 |
Bug | SPIREPDF-5755 | OFDからPDFに変換する際に余分なスペースが発生していた問題を修正しました。 |
Bug | SPIREPDF-5800 | 別のPDF文書に添付されたPDF文書をPDF/A-3形式に変換した後、形式が標準に準拠していなかった問題が修正されました。 |
Bug | SPIREPDF-5849 | PDF文書からすべてのテキストを抽出したときに一部のテキストが抽出されなかった問題が修正されました。 |
Bug | SPIREPDF-5856 | PDF文書からテキストを抽出する際にテキストが繰り返し抽出されていた問題が修正されました。 |
Bug | SPIREPDF-5857 | PDFをSVGに変換した後に文字が表の枠線を超えていた問題が修正されました。 |
Bug | SPIREPDF-5884 | PDFをWordに変換した後にコンテンツのレイアウトが正しくない問題が修正されました。 |
Bug | SPIREPDF-5886 | PDF文書を印刷する際にスタンプが失われていた問題が修正されました。 |
Bug | SPIREPDF-5887 | page.CreateTemplate()を呼び出する際にアプリケーションが「System.NullReferenceException:“Object reference not set to an instance of an object.”」をスローする問題が修正されました。 |
Bug | SPIREPDF-5890 | PDFを画像に変換する際にアプリケーションが「System.ArgumentException」をスローする問題が修正されました。 |
Bug | SPIREPDF-5891 | テキスト検索する際にアプリケーションが「System.ArgumentOutOfRangeException」をスローする問題が修正されました。 |
Bug | SPIREPDF-5911 | 文書を両面印刷する際に、裏面のページ方向が逆になる問題が修正されました。 |
Bug | SPIREPDF-5915 | 単一フォームフィールドのフラット化されたフィールド値の位置が正しくない問題を修正しました。 |
Bug | SPIREPDF-5919 | XPSをPDFに変換した後にテキストが失われていた問題が修正されました。 |
Bug | SPIREPDF-5922 | PDF文書をマージする際にアプリケーションが「System.ArgumentException」をスローする問題が修正されました。 |
カテゴリー | ID | 説明 |
New feature | SPIREDOC-7359 | Word 2013のテーブルの新しいスタイルをサポートしました。 |
Bug | SPIREDOC-3430 | WordをHTMLに変換した後にグラフが失われていた問題が修正されました。 |
Bug | SPIREDOC-8506 | WordをPDFに変換した後に修正を受けた効果が正しくない問題が修正されました。 |
Bug | SPIREDOC-9176 | RTFをPDFに変換した後に画像が失われていた問題が修正されました。 |
Bug | SPIREDOC-9203 | DocをDocxに変換した後にページ方向が縦から横に変化する問題が修正されました。 |
Bug | SPIREDOC-9215 | 文書をロードしてから新しい文書に保存すると、画像が失われる問題が修正されました。 |
Bug | SPIREDOC-9230 | WordをHTMLに変換した後にフォントのスタイルが正しくない問題が修正されました。 |
Bug | SPIREDOC-9256 | フィールドの更新後にフィールド値が失われていた問題が修正されました。 |
Bug | SPIREDOC-9259 | WordをPDFに変換した後に画像のハイパーリンク位置が変更された問題が修正されました。 |
Bug | SPIREDOC-9262 | Word文書をロードする際にアプリケーションが「Cannot insert an object of type CustomXml into the Body」をスローする問題が修正されました。 |
カテゴリー | ID | 説明 |
New feature | SPREADSHEET-82 | PDF文書への保存がサポートされています。
this.spreadsheet1.SaveToFile("1.pdf", FileFormatType.PDF); |
カテゴリー | ID | 説明 |
Bug | SPIREPPT-2224 | PPTを画像に変換する際にプログラムが無限ループに入り、メモリが消耗される問題を修正しました。 |
Spire.Doc 11.4.12のリリースを発表できることを嬉しく思います。今回のアップデートでは、Word 2013のテーブルの新しいスタイルをサポートしました。同時に、WordからPDFへの変換機能も強化されました。また、文書をロードしてから新しい文書に保存した後に画像が失われた問題など、多くの既知の問題が修正されました。詳細は以下の内容を読んでください。
カテゴリー | ID | 説明 |
New feature | SPIREDOC-7359 | Word 2013のテーブルの新しいスタイルをサポートしました。 |
Bug | SPIREDOC-3430 | WordをHTMLに変換した後にグラフが失われていた問題が修正されました。 |
Bug | SPIREDOC-8506 | WordをPDFに変換した後に修正を受けた効果が正しくない問題が修正されました。 |
Bug | SPIREDOC-9176 | RTFをPDFに変換した後に画像が失われていた問題が修正されました。 |
Bug | SPIREDOC-9203 | DocをDocxに変換した後にページ方向が縦から横に変化する問題が修正されました。 |
Bug | SPIREDOC-9215 | 文書をロードしてから新しい文書に保存すると、画像が失われる問題が修正されました。 |
Bug | SPIREDOC-9230 | WordをHTMLに変換した後にフォントのスタイルが正しくない問題が修正されました。 |
Bug | SPIREDOC-9256 | フィールドの更新後にフィールド値が失われていた問題が修正されました。 |
Bug | SPIREDOC-9259 | WordをPDFに変換した後に画像のハイパーリンク位置が変更された問題が修正されました。 |
Bug | SPIREDOC-9262 | Word文書をロードする際にアプリケーションが「Cannot insert an object of type CustomXml into the Body」をスローする問題が修正されました。 |
Spire.PDF 9.4.12のリリースを発表できることを嬉しく思います。このバージョンでは、PDF文書の印刷速度とPDFを画像に変換する速度が向上しました。PDFからWord、SVG、および画像への変換機能も強化されました。また、PDF文書の画像を圧縮するとPDF文書が大きくなるなど、多くの既知の問題が修正されました。詳細は以下の内容を読んでください。
カテゴリー | ID | 説明 |
New feature | SPIREPDF-1096 SPIREPDF-2427 SPIREPDF-2994 SPIREPDF-3836 |
PDFの印刷速度が向上しました。 |
New feature | SPIREPDF-2287 SPIREPDF-4084 |
PDFを画像に変換する速度が向上しました。 |
Bug | SPIREPDF-1608 | Firefoxで暗号化されたPDF文書を開くと、正しいパスワードを入力する際にパスワードが正しくないことを提示する問題が修正されました。 |
Bug | SPIREPDF-3499 | PDFをWordに変換した後にテーブルが失われていた問題が修正されました。 |
Bug | SPIREPDF-3847 | PDFをWordに変換した後にテキストの順序が正しくない問題が修正されました。 |
Bug | SPIREPDF-4078 | PDFをWordに変換した後に内容が乱れる問題が修正されました。 |
Bug | SPIREPDF-5313 | PDF文書の画像を圧縮するとPDF文書が大きくなる問題が修正されました。 |
Bug | SPIREPDF-5755 | OFDからPDFに変換する際に余分なスペースが発生していた問題を修正しました。 |
Bug | SPIREPDF-5800 | 別のPDF文書に添付されたPDF文書をPDF/A-3形式に変換した後、形式が標準に準拠していなかった問題が修正されました。 |
Bug | SPIREPDF-5849 | PDF文書からすべてのテキストを抽出したときに一部のテキストが抽出されなかった問題が修正されました。 |
Bug | SPIREPDF-5856 | PDF文書からテキストを抽出する際にテキストが繰り返し抽出されていた問題が修正されました。 |
Bug | SPIREPDF-5857 | PDFをSVGに変換した後に文字が表の枠線を超えていた問題が修正されました。 |
Bug | SPIREPDF-5884 | PDFをWordに変換した後にコンテンツのレイアウトが正しくない問題が修正されました。 |
Bug | SPIREPDF-5886 | PDF文書を印刷する際にスタンプが失われていた問題が修正されました。 |
Bug | SPIREPDF-5887 | page.CreateTemplate()を呼び出する際にアプリケーションが「System.NullReferenceException:“Object reference not set to an instance of an object.”」をスローする問題が修正されました。 |
Bug | SPIREPDF-5890 | PDFを画像に変換する際にアプリケーションが「System.ArgumentException」をスローする問題が修正されました。 |
Bug | SPIREPDF-5891 | テキスト検索する際にアプリケーションが「System.ArgumentOutOfRangeException」をスローする問題が修正されました。 |
Bug | SPIREPDF-5911 | 文書を両面印刷する際に、裏面のページ方向が逆になる問題が修正されました。 |
Bug | SPIREPDF-5915 | 単一フォームフィールドのフラット化されたフィールド値の位置が正しくない問題を修正しました。 |
Bug | SPIREPDF-5919 | XPSをPDFに変換した後にテキストが失われていた問題が修正されました。 |
Bug | SPIREPDF-5922 | PDF文書をマージする際にアプリケーションが「System.ArgumentException」をスローする問題が修正されました。 |
背景色や画像は、ドキュメントをより美しく、注目を集めるものにするのに役立ちます。営業、教育、発表の目的でドキュメントを作成する場合、魅力的な背景色や画像を追加することは非常に有効です。この記事では、Spire.Doc for C++ を使用して、プログラムで Word ドキュメントに背景色や背景画像を追加する方法を説明します。
Spire.Doc for C++ をアプリケーションに組み込むには、2つの方法があります。一つは NuGet 経由でインストールする方法、もう一つは当社のウェブサイトからパッケージをダウンロードし、ライブラリをプログラムにコピーする方法です。NuGet 経由のインストールの方が便利で、より推奨されます。詳しくは、以下のリンクからご覧いただけます。
Spire.Doc for C++ を C++ アプリケーションに統合する方法
Spire.Doc for C++ を使えば、Word ドキュメントに背景色を追加するのはとても簡単です。ドキュメントの背景の種類を色に設定し、背景となる色を指定すればよいのです。詳しい手順は以下の通りです。
#include "Spire.Doc.o.h"
using namespace Spire::Doc;
using namespace Spire::Common;
int main()
{
//Documentのインスタンスを作成する
Document* document = new Document();
//Wordドキュメントを読み込む
document->LoadFromFile(L"C:/定義を超えた意味.docx");
//ドキュメントの背景を取得する
Background* background = document->GetBackground();
//背景の種類を色に設定する
background->SetType(BackgroundType::Color);
//背景色を設定する
background->SetColor(Color::GetAliceBlue());
//ドキュメントを保存する
document->SaveToFile(L"背景色の追加.docx", FileFormat::Docx2013);
document->Close();
delete document;
}
グラデーションの背景を追加するには、背景の種類をグラデーションに設定し、グラデーションの色を指定し、グラデーションの濃淡変化とスタイルを設定する必要があります。詳しい手順は以下の通りです。
#include "Spire.Doc.o.h"
using namespace Spire::Doc;
using namespace Spire::Common;
int main()
{
//Documentのインスタンスを作成する
Document* document = new Document();
//Word ドキュメントを読み込む
document->LoadFromFile(L"C:/定義を超えた意味.docx");
//ドキュメントの背景を取得する
Background* background = document->GetBackground();
//背景の種類をグラデーションにする
background->SetType(BackgroundType::Gradient);
//グラデーション色を2色指定する
background->GetGradient()->SetColor1(Color::GetWhite());
background->GetGradient()->SetColor2(Color::GetLightBlue());
//グラデーションの濃淡変化とスタイルを設定する
background->GetGradient()->SetShadingVariant(GradientShadingVariant::ShadingDown);
background->GetGradient()->SetShadingStyle(GradientShadingStyle::Horizontal);
//ドキュメントを保存する
document->SaveToFile(L"グラデーション背景の追加.docx", FileFormat::Docx2013);
document->Close();
delete document;
}
Word ドキュメントに背景画像を追加するには、背景の種類を画像に設定し、背景となる画像を挿入する必要があります。詳しい手順は以下の通りです。
#include "Spire.Doc.o.h"
using namespace Spire::Doc;
int main()
{
//Documentのインスタンスを作成する
Document* document = new Document();
//Word ドキュメントを読み込む
document->LoadFromFile(L"C:/定義を超えた意味.docx");
//ドキュメントの背景を取得する
Background* background = document->GetBackground();
//背景の種類を画像にする
background->SetType(BackgroundType::Picture);
//背景画像を設定する
background->SetPicture(L"C:/背景画像.jpeg");
//ドキュメントを保存する
document->SaveToFile(L"背景画像の追加.docx", FileFormat::Docx2013);
document->Close();
delete document;
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
時には、関連する複数の Word ドキュメントを統合して、より完全なドキュメントを作成する必要があります。MS Word でドキュメントを結合するには、手動でコンテンツをコピー&ペーストするか、他のドキュメントからコンテンツをインポートする必要があります。しかし、多くのドキュメントを結合する場合、この方法は面倒なことがあります。幸いにも、Spire.Doc for Java は、プログラミングによって Word ドキュメントを結合する2つの簡単な方法を提供しています。この記事では、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.insertTextFromFile() というメソッドは、他のドキュメントを丸ごと挿入して Word ドキュメントを結合し、挿入内容を新しいページから始めることができます。
ファイル全体を挿入してドキュメントを結合する詳細な手順は、以下の通りです。
import com.spire.doc.*;
public class MergeByInserting {
public static void main(String[] args) {
//Documentのオブジェクトを作成し、Wordドキュメントを読み込む
Document document = new Document("C:/宇宙の視野.docx");
//別のWordドキュメントをこのドキュメントに完全に挿入する
document.insertTextFromFile("C:/狼はどこに行ったの.docx", FileFormat.Docx_2013);
//結果ドキュメントを保存する
document.saveToFile("結合の結果.docx", FileFormat.Docx_2013);
}
}
新しいページを始めずにドキュメントを結合したい場合、他のドキュメントの内容をクローンしてドキュメントの末尾に追加することができます。
コンテンツをコピーしてドキュメントを結合する詳しい手順は、以下のとおりです。
import com.spire.doc.*;
public class MergeByCopying {
public static void main(String[] args) {
//2つのDocumentオブジェクトを作成し、2つのWordドキュメントを読み込む
Document document1 = new Document("C:/宇宙の視野.docx");
Document document2 = new Document("C:/狼はどこに行ったの.docx");
//2つ目のドキュメントをループして、すべてのセクションを取得する
for (Object sectionObj : document2.getSections()) {
Section sec=(Section)sectionObj;
//2つ目のドキュメントのセクションをループして、その子オブジェクトを取得する
for (Object docObj : sec.getBody().getChildObjects()) {
DocumentObject obj=(DocumentObject)docObj;
//最初のドキュメントの最後のセクションを取得する
Section lastSection = document1.getLastSection();
//最初のドキュメントの最後のセクションに子オブジェクトを追加する
Body body = lastSection.getBody();
body.getChildObjects().add(obj.deepClone());
}
}
//結果ドキュメントを保存する
document1.saveToFile("結合の結果.docx", FileFormat.Docx_2013);
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Spire.PDF for Java 9.4.9のリリースを発表できることをうれしく思います。このバージョンは、PDFストリーム文書が暗号化されているかどうかを判断する機能をサポートしています。また、PDFからWord、HTML、および画像への変換機能も強化されました。さらに、リフレクションで製品を使用するとエラーが発生する問題など、いくつかの既知の問題が修正されました。詳細は以下の内容を読んでください。
カテゴリー | ID | 説明 |
New feature | SPIREPDF-5855 | PDFストリーム文書が暗号化されているかどうかを判断する機能をサポートしています。
boolean result = PdfDocument.isPasswordProtected(PDFstream); |
Bug | SPIREPDF-5323 | PDFを画像に変換する際、内容が切り取られていた問題が修正されました。 |
Bug | SPIREPDF-5652 | PDFをWordに変換する際、フォント名の前後に余分な文字があるためにテキストコンテンツが誤って表示される問題が修正されました。 |
Bug | SPIREPDF-5878 | リフレクションで製品を使用する際、アプリケーションが「java.lang.NullPointerException: Cannot invoke 'java.io.InputStream.close()' because 'a' is null」をスローする問題が修正されました。 |
Bug | SPIREPDF-5879 | PDFを画像に変換する際、メモリ不足の問題が修正されました。 |
Bug | SPIREPDF-5914 | PDFをHTMLに変換する際、太字フォントの効果が失われる問題が修正されました。 |
Bug | SPIREPDF-5926 | PDFを画像に変換する際、アプリケーションが「StringIndexOutOfBoundsException」をスローする問題が修正されました。 |
Word には、入力時にドキュメント内の単語数をカウントするワードカウンターが用意されています。それ以外にも、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>11.4.2</version>
</dependency>
</dependencies>
Spire.Doc for Java が提供する Document.getBuiltinDocumentProperties().getWordCount() メソッドは、Word ドキュメントの単語数を取得できます。また、その他にも文字数やスペースを含む文字数をカウントできるメソッドもあります。
import com.spire.doc.*;
public class WordCount {
public static void main(String[] args) {
//Documentのインスタンスを作成する
Document document = new Document();
//Word ドキュメントを読み込む
document.loadFromFile("C:/宇宙の視野.docx");
//単語数をカウントする
System.out.println("単語数:" + document.getBuiltinDocumentProperties().getWordCount());
//スペースを含まない文字数を数える
System.out.println("文字数:" + document.getBuiltinDocumentProperties().getCharCount());
//スペースを含む文字数をカウントする
System.out.println("スペースを含む文字数:" + document.getBuiltinDocumentProperties().getCharCountWithSpace());
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Excel にはデータを記録する以外に計算機能があり、データの分析や加工を効率的かつ簡単に行うことができます。Excel の計算ツールには、数式と関数の2つがあります。数式はユーザーが定義した計算文であり、関数はあらかじめ定義された数式です。ユーザーは、セルに自分の数式を入力するか、関数を呼び出すだけで計算することができます。この記事では、Spire.XLS for Java を使用して、Excel ワークブックに数式や関数を挿入したり、読み込んだりする方法を紹介します。
まず、Spire.XLS 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.xls</artifactId>
<version>12.12.4</version>
</dependency>
</dependencies>
Spire.XLS for Java では、特定のセルに数式や関数を追加するための Worksheet.getCellRange().setFormula() メソッドを用意しています。ワークシートに数式や関数を挿入する詳細な手順は以下の通りです。
import com.spire.xls.*;
public class insertFormulas {
public static void main(String[] args) {
//Workbookのオブジェクトを作成する
Workbook workbook = new Workbook();
//最初のワークシートを取得する
Worksheet sheet = workbook.getWorksheets().get(0);
//currentRow、currentFormulaの2つの変数を宣言する
int currentRow = 1;
String currentFormula = null;
//列の幅を設定する
sheet.setColumnWidth(1, 32);
sheet.setColumnWidth(2, 16);
//セルにデータを書き込む
sheet.getCellRange(currentRow,1).setValue("テスト用データ");
sheet.getCellRange(currentRow,2).setNumberValue(1);
sheet.getCellRange(currentRow,3).setNumberValue(2);
sheet.getCellRange(currentRow,4).setNumberValue(3);
sheet.getCellRange(currentRow,5).setNumberValue(4);
sheet.getCellRange(currentRow,6).setNumberValue(5);
//セルにテキストを書き込む
currentRow += 2;
sheet.getCellRange(currentRow,1).setValue("数式") ; ;
sheet.getCellRange(currentRow,2).setValue("結果");
//セルの書式を設定する
CellRange range = sheet.getCellRange(currentRow,1,currentRow,2);
range.getStyle().getFont().isBold(true);
range.getStyle().setKnownColor(ExcelColors.LightGreen1);
range.getStyle().setFillPattern(ExcelPatternType.Solid);
range.getStyle().getBorders().getByBordersLineType(BordersLineType.EdgeBottom).setLineStyle(LineStyleType.Medium);
//算術演算
currentFormula = "=1/2+3*4";
sheet.getCellRange(++currentRow,1).setText("'"+ currentFormula);
sheet.getCellRange(currentRow,2).setFormula(currentFormula);
//日付関数
currentFormula = "=TODAY()";
sheet.getCellRange(++currentRow,1).setText("'"+currentFormula);
sheet.getCellRange(currentRow,2).setFormula(currentFormula);
sheet.getCellRange(currentRow,2).getStyle().setNumberFormat("YYYY/MM/DD");
//時間関数
currentFormula = "=NOW()";
sheet.getCellRange(++currentRow,1).setText("'"+currentFormula);
sheet.getCellRange(currentRow,2).setFormula(currentFormula);
sheet.getCellRange(currentRow,2).getStyle().setNumberFormat("H:MM AM/PM");
//IF関数
currentFormula = "=IF(B1=5,\"Yes\",\"No\")";
sheet.getCellRange(++currentRow,1).setText("'"+currentFormula);
sheet.getCellRange(currentRow,2).setFormula(currentFormula);
//PI関数
currentFormula = "=PI()";
sheet.getCellRange(++currentRow,1).setText("'"+currentFormula);
sheet.getCellRange(currentRow,2).setFormula(currentFormula);
//三角関数
currentFormula = "=SIN(PI()/6)";
sheet.getCellRange(++currentRow,1).setText("'"+currentFormula);
sheet.getCellRange(currentRow,2).setFormula(currentFormula);
//計数関数
currentFormula = "=Count(B1:F1)";
sheet.getCellRange(++currentRow,1).setText("'"+currentFormula);
sheet.getCellRange(currentRow,2).setFormula(currentFormula);
//最大値関数
currentFormula = "=MAX(B1:F1)";
sheet.getCellRange(++currentRow,1).setText("'"+currentFormula);
sheet.getCellRange(currentRow,2).setFormula(currentFormula);
//平均関数
currentFormula = "=AVERAGE(B1:F1)";
sheet.getCellRange(++currentRow,1).setText("'"+currentFormula);
sheet.getCellRange(currentRow,2).setFormula(currentFormula);
//和算関数
currentFormula = "=SUM(B1:F1)";
sheet.getCellRange(++currentRow,1).setText("'"+currentFormula);
sheet.getCellRange(currentRow,2).setFormula(currentFormula);
//ワークブックを保存する
workbook.saveToFile("数式の挿入.xlsx",FileFormat.Version2013);
}
}
Excel のワークシートで数式を読み込むには、CellRange.hasFormula() メソッドを使用して、セルに数式が含まれているかどうかを検出することができます。そして、CellRange.getFormula() メソッドを使用して、数式がある場合はその数式を取得します。詳しい手順は以下の通りです。
import com.spire.xls.CellRange;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
public class readFormulas {
public static void main(String[] args) {
//Workbookのオブジェクトを作成する
Workbook workbook = new Workbook();
//Excelファイルを読み込む
workbook.loadFromFile("数式の挿入.xlsx");
//最初のワークシートを取得する
Worksheet sheet = workbook.getWorksheets().get(0);
//B1:B13内のセルをループする
for (Object cell: sheet.getCellRange("B1:B13")
) {
CellRange cellRange = (CellRange)cell;
//セルに数式があるかどうかを検出する
if (cellRange.hasFormula()){
//数式を出力する
String certainCell = String.format("セル[%d, %d]に数式がある。",cellRange.getRow(),cellRange.getColumn());
System.out.println(certainCell + cellRange.getFormula());
}
}
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。