チュートリアル
簡単にライブラリーを使用するためのチュートリアルコレクション
文書の段落を読みやすくしたり、論理的な関係性を持たせたい場合は、文字や数字、項目記号によって並べ替えることができます。この機能により、読者は特定の内容を迅速に見つけることができ、リストの内容を短時間で把握することができます。この記事では、Spire.Doc for C++ を使用して C++ で Word 文書に次のリストを挿入する方法について説明します。
Spire.Doc for C++ をアプリケーションに組み込むには、2つの方法があります。一つは NuGet 経由でインストールする方法、もう一つは当社のウェブサイトからパッケージをダウンロードし、ライブラリをプログラムにコピーする方法です。NuGet 経由のインストールの方が便利で、より推奨されます。詳しくは、以下のリンクからご覧いただけます。
Spire.Doc for C++ を C++ アプリケーションに統合する方法
Spire.Doc for C++ には、番号付きリストや箇条書きリストを作成するための ListStyle クラスが用意されています。次に、Paragraph->GetListFormat()->ApplyStyle() メソッドを使用して、リストスタイルを段落に適用できます。番号付きリストを作成する手順は次のとおりです。
#include "Spire.Doc.o.h";
using namespace Spire::Doc;
using namespace std;
int main() {
//Documentオブジェクトを作成する
intrusive_ptr<Document> document = new Document();
//セクションを追加する
intrusive_ptr<Section> section = document->AddSection();
//番号付きリストのスタイルを作成する
intrusive_ptr<ListStyle> listStyle = new ListStyle(document, ListType::Numbered);
listStyle->SetName(L"numberedList");
listStyle->GetLevels()->GetItem(0)->SetPatternType(ListPatternType::DecimalEnclosedParen);
listStyle->GetLevels()->GetItem(0)->SetTextPosition(20);
document->GetListStyles()->Add(listStyle);
//段落を追加する
intrusive_ptr<Paragraph> paragraph = section->AddParagraph();
paragraph->AppendText(L"Web開発に必要なスキル:");
paragraph->GetFormat()->SetAfterSpacing(5);
//段落を追加して番号付きリストのスタイルを適用する
paragraph = section->AddParagraph();
paragraph->AppendText(L"HTML");
paragraph->GetListFormat()->ApplyStyle(L"numberedList");
paragraph->GetListFormat()->SetListLevelNumber(0);
//4つの段落を追加し、番号付きリストのスタイルを適用する
paragraph = section->AddParagraph();
paragraph->AppendText(L"CSS");
paragraph->GetListFormat()->ApplyStyle(L"numberedList");
paragraph->GetListFormat()->SetListLevelNumber(0);
paragraph = section->AddParagraph();
paragraph->AppendText(L"C++Script");
paragraph->GetListFormat()->ApplyStyle(L"numberedList");
paragraph->GetListFormat()->SetListLevelNumber(0);
paragraph = section->AddParagraph();
paragraph->AppendText(L"Python");
paragraph->GetListFormat()->ApplyStyle(L"numberedList");
paragraph->GetListFormat()->SetListLevelNumber(0);
paragraph = section->AddParagraph();
paragraph->AppendText(L"MySQL");
paragraph->GetListFormat()->ApplyStyle(L"numberedList");
paragraph->GetListFormat()->SetListLevelNumber(0);
//結果文書を保存する
document->SaveToFile(L"output/NumberedList.docx", FileFormat::Docx2019);
document->Dispose();
}
箇条書きの作成は、番号付きリストを作成するプロセスと似ています。しかし、リストのスタイルを作成するときに、 [Bulleted] として指定してください。また、箇条書き記号も設定してください。次は詳細な手順です。
#include "Spire.Doc.o.h";
using namespace Spire::Doc;
using namespace std;
int main() {
//Documentオブジェクトを作成する
intrusive_ptr<Document> document = new Document();
//セクションを追加する
intrusive_ptr<Section> section = document->AddSection();
//箇条書きリストのスタイルを作成する
intrusive_ptr<ListStyle> listStyle = new ListStyle(document, ListType::Bulleted);
listStyle->SetName(L"bulletedList");
listStyle->GetLevels()->GetItem(0)->SetBulletCharacter(L"\u00B7");
listStyle->GetLevels()->GetItem(0)->GetCharacterFormat()->SetFontName(L"Symbol");
listStyle->GetLevels()->GetItem(0)->SetTextPosition(20);
document->GetListStyles()->Add(listStyle);
//段落を追加する
intrusive_ptr<Paragraph> paragraph = section->AddParagraph();
paragraph->AppendText(L"Web開発に必要なスキル");
paragraph->GetFormat()->SetAfterSpacing(5);
//段落を追加して箇条書きリストのスタイルを適用する
paragraph = section->AddParagraph();
paragraph->AppendText(L"HTML");
paragraph->GetListFormat()->ApplyStyle(L"bulletedList");
paragraph->GetListFormat()->SetListLevelNumber(0);
//5つの段落を追加し、箇条書きリストのスタイルを適用する
paragraph = section->AddParagraph();
paragraph->AppendText(L"CSS");
paragraph->GetListFormat()->ApplyStyle(L"bulletedList");
paragraph->GetListFormat()->SetListLevelNumber(0);
paragraph = section->AddParagraph();
paragraph->AppendText(L"C++Script");
paragraph->GetListFormat()->ApplyStyle(L"bulletedList");
paragraph->GetListFormat()->SetListLevelNumber(0);
paragraph = section->AddParagraph();
paragraph->AppendText(L"Python");
paragraph->GetListFormat()->ApplyStyle(L"bulletedList");
paragraph->GetListFormat()->SetListLevelNumber(0);
paragraph = section->AddParagraph();
paragraph->AppendText(L"MySQL");
paragraph->GetListFormat()->ApplyStyle(L"bulletedList");
paragraph->GetListFormat()->SetListLevelNumber(0);
paragraph = section->AddParagraph();
paragraph->AppendText(L"PHP");
paragraph->GetListFormat()->ApplyStyle(L"bulletedList");
paragraph->GetListFormat()->SetListLevelNumber(0);
//結果文書を保存する
document->SaveToFile(L"output/BulletedList.docx", FileFormat::Docx2019);
document->Dispose();
}
多レベルリストは2つ以上のレベルで構成されています。各レベルは、ListStyle->GetLevels()->GetItem(index) メソッドを使用してアクセスできます。ListLevel オブジェクトを介して、特定のレベルの番号の種類やプレフィックスを設定することができます。次は詳細な手順です。
#include "Spire.Doc.o.h";
using namespace Spire::Doc;
using namespace std;
int main() {
//Documentオブジェクトを作成する
intrusive_ptr<Document> document = new Document();
//セクションを追加する
intrusive_ptr<Section> section = document->AddSection();
//番号付きリストスタイルを作成し、各レベルのプレフィックスとパターンタイプを指定する
intrusive_ptr<ListStyle> listStyle = new ListStyle(document, ListType::Numbered);
listStyle->SetName(L"nestedStyle");
listStyle->GetLevels()->GetItem(0)->SetPatternType(ListPatternType::Arabic);
listStyle->GetLevels()->GetItem(0)->SetTextPosition(20);
listStyle->GetLevels()->GetItem(1)->SetNumberPrefix(L"%1.");
listStyle->GetLevels()->GetItem(1)->SetPatternType(ListPatternType::Arabic);
listStyle->GetLevels()->GetItem(2)->SetNumberPrefix(L"%1.%2.");
listStyle->GetLevels()->GetItem(2)->SetPatternType(ListPatternType::Arabic);
document->GetListStyles()->Add(listStyle);
//段落を追加する
intrusive_ptr<Paragraph> paragraph = section->AddParagraph();
paragraph->AppendText(L"複数レベル番号付きリスト:");
paragraph->GetFormat()->SetAfterSpacing(5);
//段落を追加して番号付けリストのスタイルを適用する
paragraph = section->AddParagraph();
paragraph->AppendText(L"The first item");
paragraph->GetListFormat()->ApplyStyle(L"nestedStyle");
paragraph->GetListFormat()->SetListLevelNumber(0);
//5つの段を追加し、番号付けリストのスタイルを適用する
paragraph = section->AddParagraph();
paragraph->AppendText(L"The second item");
paragraph->GetListFormat()->ApplyStyle(L"nestedStyle");
paragraph->GetListFormat()->SetListLevelNumber(0);
paragraph = section->AddParagraph();
paragraph->AppendText(L"The first sub-item");
paragraph->GetListFormat()->ApplyStyle(L"nestedStyle");
paragraph->GetListFormat()->SetListLevelNumber(1);
paragraph = section->AddParagraph();
paragraph->AppendText(L"The second sub-item");
paragraph->GetListFormat()->ContinueListNumbering();
paragraph->GetListFormat()->ApplyStyle(L"nestedStyle");
paragraph = section->AddParagraph();
paragraph->AppendText(L"A sub-sub-item");
paragraph->GetListFormat()->ApplyStyle(L"nestedStyle");
paragraph->GetListFormat()->SetListLevelNumber(2);
paragraph = section->AddParagraph();
paragraph->AppendText(L"The third item");
paragraph->GetListFormat()->ApplyStyle(L"nestedStyle");
paragraph->GetListFormat()->SetListLevelNumber(0);
//結果文書を保存する
document->SaveToFile(L"output/MultilevelNumberedList.docx", FileFormat::Docx2019);
document->Dispose();
}
多レベルリストで数字と記号を同時に使用したい場合があります。この機能を実現するには、番号付きリストスタイルと箇条書きリストスタイルを作成し、それらを異なる段落に適用するだけです。詳細な手順は次のとおりです。
#include "Spire.Doc.o.h";
using namespace Spire::Doc;
using namespace std;
int main() {
//Documentオブジェクトを作成する
intrusive_ptr<Document> document = new Document();
//セクションを追加する
intrusive_ptr<Section> section = document->AddSection();
//番号付きリストスタイルを作成する
intrusive_ptr<ListStyle> numberedListStyle = new ListStyle(document, ListType::Numbered);
numberedListStyle->SetName(L"numberedStyle");
numberedListStyle->GetLevels()->GetItem(0)->SetPatternType(ListPatternType::Arabic);
numberedListStyle->GetLevels()->GetItem(0)->SetTextPosition(20);
numberedListStyle->GetLevels()->GetItem(1)->SetPatternType(ListPatternType::LowLetter);
document->GetListStyles()->Add(numberedListStyle);
//箇条書きリストスタイルを作成する
intrusive_ptr<ListStyle> bulletedListStyle = new ListStyle(document, ListType::Bulleted);
bulletedListStyle->SetName(L"bulletedStyle");
bulletedListStyle->GetLevels()->GetItem(2)->SetBulletCharacter(L"\u002A");
bulletedListStyle->GetLevels()->GetItem(2)->GetCharacterFormat()->SetFontName(L"Symbol");
document->GetListStyles()->Add(bulletedListStyle);
//段落を追加する
intrusive_ptr<Paragraph> paragraph = section->AddParagraph();
paragraph->AppendText(L"多レベル混合型リスト:");
paragraph->GetFormat()->SetAfterSpacing(5);
//段落を追加して番号付きリストのスタイルを適用する
paragraph = section->AddParagraph();
paragraph->AppendText(L"The first item");
paragraph->GetListFormat()->ApplyStyle(L"numberedStyle");
paragraph->GetListFormat()->SetListLevelNumber(0);
//5つの段落を追加し、異なるリストスタイルを適用する
paragraph = section->AddParagraph();
paragraph->AppendText(L"The first sub-item");
paragraph->GetListFormat()->ApplyStyle(L"numberedStyle");
paragraph->GetListFormat()->SetListLevelNumber(1);
paragraph = section->AddParagraph();
paragraph->AppendText(L"The second sub-item");
paragraph->GetListFormat()->SetListLevelNumber(1);
paragraph->GetListFormat()->ApplyStyle(L"numberedStyle");
paragraph = section->AddParagraph();
paragraph->AppendText(L"The first sub-sub-item");
paragraph->GetListFormat()->ApplyStyle(L"bulletedStyle");
paragraph->GetListFormat()->SetListLevelNumber(2);
paragraph = section->AddParagraph();
paragraph->AppendText(L"The second sub-sub-item");
paragraph->GetListFormat()->ApplyStyle(L"bulletedStyle");
paragraph->GetListFormat()->SetListLevelNumber(2);
paragraph = section->AddParagraph();
paragraph->AppendText(L"The second item");
paragraph->GetListFormat()->ApplyStyle(L"numberedStyle");
paragraph->GetListFormat()->SetListLevelNumber(0);
//結果文書を保存する
document->SaveToFile(L"output/MultilevelMixedList.docx", FileFormat::Docx);
document->Dispose();
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Excel のデータ検証では、セルに入力される情報の種類を制限できます。この機能を使用すると、特定のデータタイプ(数値や日付など)をセル内に制限したり、数値を特定の範囲内に制限したり、テキストを特定の長さに制限したりできます。また、ユーザーが選択できるように、ドロップダウンメニューに事前定義された値のリストを提供することもできます。この記事では、Spire.XLS for C++ を使用して C++ で Excel でデータの入力規則を適用または削除する方法について説明します。
Spire.XLS for C++ をアプリケーションに組み込むには、2つの方法があります。一つは NuGet 経由でインストールする方法、もう一つは当社のウェブサイトからパッケージをダウンロードし、ライブラリをプログラムにコピーする方法です。NuGet 経由のインストールの方が便利で、より推奨されます。詳しくは、以下のリンクからご覧いただけます。
Spire.XLS for C++ を C++ アプリケーションに統合する方法
Spire.XLS for C++ では、数字、日付、テキスト値、リストなどの検証規則を作成できます。以下は、Excel の指定されたセルに異なるデータ検証タイプを適用する手順です。
#include "Spire.Xls.o.h";
using namespace Spire::Xls;
int main() {
//出力ファイルを指定する
std::wstring outputFile = L"DataValidation.xlsx";
//Workbookオブジェクトを作成する
intrusive_ptr<Workbook> workbook = new Workbook();
//最初のワークシートを取得する
intrusive_ptr<Worksheet> sheet = dynamic_pointer_cast<Worksheet>(workbook->GetWorksheets()->Get(0));
//指定したセルにテキストを挿入する
dynamic_pointer_cast<CellRange>(sheet->GetRange(L"B2"))->SetText(L"データ検証: ");
dynamic_pointer_cast<CellRange>(sheet->GetRange(L"B4"))->SetText(L"日付検証: ");
dynamic_pointer_cast<CellRange>(sheet->GetRange(L"B6"))->SetText(L"テキストの長さ検証: ");
dynamic_pointer_cast<CellRange>(sheet->GetRange(L"B8"))->SetText(L"リスト検証: ");
dynamic_pointer_cast<CellRange>(sheet->GetRange(L"B10"))->SetText(L"時間検証: ");
//C 2にデータ検証を追加する
intrusive_ptr<CellRange> rangeNumber = dynamic_pointer_cast<CellRange>(sheet->GetRange(L"C2"));
rangeNumber->GetDataValidation()->SetAllowType(CellDataType::Decimal);
rangeNumber->GetDataValidation()->SetCompareOperator(ValidationComparisonOperator::Between);
rangeNumber->GetDataValidation()->SetFormula1(L"3");
rangeNumber->GetDataValidation()->SetFormula2(L"6");
rangeNumber->GetDataValidation()->SetInputMessage(L"1から10の間の数字を入力してください。");
rangeNumber->GetDataValidation()->SetErrorMessage(L"正しい数値を入力してください。");
rangeNumber->GetDataValidation()->SetShowError(true);
rangeNumber->GetDataValidation()->SetAlertStyle(AlertStyleType::Warning);
rangeNumber->GetStyle()->SetKnownColor(ExcelColors::Gray25Percent);
//C4に日付検証を追加する
intrusive_ptr<CellRange> rangeDate = dynamic_pointer_cast<CellRange>(sheet->GetRange(L"C4"));
rangeDate->GetDataValidation()->SetAllowType(CellDataType::Date);
rangeDate->GetDataValidation()->SetCompareOperator(ValidationComparisonOperator::Between);
rangeDate->GetDataValidation()->SetFormula1(L"1/1/2021");
rangeDate->GetDataValidation()->SetFormula2(L"12/31/2021");
rangeDate->GetDataValidation()->SetInputMessage(L"1/1/2021から12/31/2021の間の日付を入力してください。");
rangeDate->GetStyle()->SetKnownColor(ExcelColors::Gray25Percent);
//C6にテキストの長さ検証を追加する
intrusive_ptr<CellRange> rangeTextLength = dynamic_pointer_cast<CellRange>(sheet->GetRange(L"C6"));
rangeTextLength->GetDataValidation()->SetAllowType(CellDataType::TextLength);
rangeTextLength->GetDataValidation()->SetCompareOperator(ValidationComparisonOperator::LessOrEqual);
rangeTextLength->GetDataValidation()->SetFormula1(L"5");
rangeTextLength->GetDataValidation()->SetErrorMessage(L"有効な文字列を入力してください。");
rangeTextLength->GetDataValidation()->SetShowError(true);
rangeTextLength->GetDataValidation()->SetAlertStyle(AlertStyleType::Stop);
rangeTextLength->GetStyle()->SetKnownColor(ExcelColors::Gray25Percent);
//C8にリストの検証を追加する
intrusive_ptr<CellRange> rangeList = dynamic_pointer_cast<CellRange>(sheet->GetRange(L"C8"));
std::vector<LPCWSTR_S> files = { L"アメリカ", L"カナダ", L"イギリス" };
rangeList->GetDataValidation()->SetValues(files);
rangeList->GetDataValidation()->SetIsSuppressDropDownArrow(false);
rangeList->GetDataValidation()->SetInputMessage(L"リストから項目を選択してください。");
rangeList->GetStyle()->SetKnownColor(ExcelColors::Gray25Percent);
//C10に時間の検証を適用する
intrusive_ptr<CellRange> rangeTime = dynamic_pointer_cast<CellRange>(sheet->GetRange(L"C10"));
rangeTime->GetDataValidation()->SetAllowType(CellDataType::Time);
rangeTime->GetDataValidation()->SetCompareOperator(ValidationComparisonOperator::Between);
rangeTime->GetDataValidation()->SetFormula1(L"9:00");
rangeTime->GetDataValidation()->SetFormula2(L"12:00");
rangeTime->GetDataValidation()->SetInputMessage(L"9:00から12:00の間の時間を入力してください。");
rangeTime->GetStyle()->SetKnownColor(ExcelColors::Gray25Percent);
//列2の幅を自動調整する
sheet->AutoFitColumn(2);
//列3の幅を設定する
sheet->GetColumns()->GetItem(2)->SetColumnWidth(20);
//結果文書を保存する
workbook->SaveToFile(outputFile.c_str(), ExcelVersion::Version2016);
workbook->Dispose();
}
セルに適用されたデータ検証を削除するために、Spire.XLS for C++ には Worksheet->GetDVTable()->Remove() メソッドが用意されています。詳細な手順は次のとおりです。
#include "Spire.Xls.o.h";
using namespace Spire::Xls;
int main() {
//入出力ファイルを指定する
std::wstring inputFile = L"DataValidation.xlsx";
std::wstring outputFile = L"RemoveDataValidation.xlsx";
//Workbookオブジェクトを作成する
intrusive_ptr<Workbook> workbook = new Workbook();
//ディスクからのExcelドキュメントをロードする
workbook->LoadFromFile(inputFile.c_str());
//最初のシートを取得する
intrusive_ptr<Worksheet> sheet = dynamic_pointer_cast<Worksheet>(workbook->GetWorksheets()->Get(0));
//検証を削除するセルを決定するために矩形配列を作成する
std::vector<intrusive_ptr<Spire::Common::Rectangle>> rectangles(1);
//配列の最初の要素に値を設定し、矩形に基づいたセル範囲を指定する
rectangles[0] = Spire::Common::Rectangle::FromLTRB(0, 0, 2, 9);
//矩形範囲内の検証を削除する
sheet->GetDVTable()->Remove(rectangles);
//結果文書を保存する
workbook->SaveToFile(outputFile.c_str(), ExcelVersion::Version2016);
workbook->Dispose();
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Spire.Presentation 8.6.0のリリースを発表できることをうれしく思います。このバージョンは、TextFrameのカラム数の設定がサポートされています。また、結合セルを分割する際にアプリケーションが「Merged cells found.」をスローするなど、既知の問題が修正されました。詳細は以下の内容を読んでください。
カテゴリー | ID | 説明 |
New feature | SPIREPPT-2232 | TextFrameのカラム数の設定がサポートされています。
Presentation ppt = new Presentation(); ppt.LoadFromFile(inputFile); IAutoShape shape1 = (IAutoShape)ppt.Slides[0].Shapes[0]; shape1.TextFrame.ColumnCount = 2; IAutoShape shape2 = (IAutoShape)ppt.Slides[1].Shapes[0]; shape2.TextFrame.ColumnCount = 3; ppt.SaveToFile(outputFile, FileFormat.Pptx2013); ppt.Dispose(); |
Bug | SPIREPPT-2205 | 保存したPPTのグラフデータを編する際にエラーが発生した問題が修正されました。 |
Bug | SPIREPPT-2221 | グラフデータにNULL値がある場合に、行/列を切り替える際にエラーが発生した問題が修正されました。 |
Bug | SPIREPPT-2215 SPIREPPT-2225 |
統合セルを分割する際にアプリケーションが「Merged cells found.」をスローする問題が修正されました。 |
Bug | SPIREPPT-2212 SPIREPPT-2243 |
グラフデータの更新が正しくない問題が修正されました。 |
Bug | SPIREPPT-2245 SPIREPPT-2274 |
GroupShapeを画像に保存すると結果がぼやけてしまう問題が修正されました。 |
Spire.Office 8.6.0のリリースを発表できることを嬉しく思います。このバージョンでは、Spire.PDFは複数ページのPDFドキュメントを単一のSVGファイルに変換することがサポートしています。Spire.XLSでは、行の削除速度を最適化するためのメソッドが追加されました。Spire.Presentationでは、 TextFrameのカラム数の設定がサポートされています。さらに、多くの既知の問題も修正しました。詳細は以下の内容を読んでください。
このバージョンでは、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-5977 | 複数ページのPDFドキュメントを単一のSVGファイルに変換することがサポートしています。
//ドキュメントをロードする PdfDocument pdfDocument = new PdfDocument(); pdfDocument.LoadFromFile("input.pdf"); //複数ページ保存PDFを1ページSVGに保存 pdfDocument.ConvertOptions.OutputToOneSvg = true; //ドキュメントを保存する pdfDocument.SaveToFile("outpit.svg",FileFormat.SVG); pdfDocument.Close(); |
Bug | SPIREPDF-1786 | ページサイズは同じでも、ページ数が異なるPDF文書の問題が修正されました。 |
Bug | SPIREPDF-5782 | テキスト検索が失敗する問題が修正されました。 |
Bug | SPIREPDF-5783 | 回転した角度のあるテキストを描画できない問題が修正されました。 |
Bug | SPIREPDF-5901 SPIREPDF-5985 |
OFDをPDFに変換する際にアプリケーションが例外をスローする問題が修正されました。 |
Bug | SPIREPDF-5967 | PDFをPPTに変換した後、単語間の空白が消える問題が修正されました。 |
Bug | SPIREPDF-5992 | PDFをPPTに変換した後、内容が一致しない問題が修正されました。 |
Bug | SPIREPDF-6000 | 表の内容を抽出する際に、一部の内容が正しくない問題が修正されました。 |
Bug | SPIREPDF-6004 | テキストを正規表現でマッチングする際に、アプリケーションが「System.IndexOutOfRangeException」をスローする問題が修正されました。 |
Bug | SPIREPDF-6006 | PDFをExcelに変換した後、セルのフォーマットが正しくない問題が修正されました。 |
Bug | SPIREPDF-5943 | Linux環境でPDFをWordドキュメントに変換する時間を最適化しました。 |
カテゴリー | ID | 説明 |
New feature | SPIREXLS-4560 | chartsheetとworksheetを位置間で移動させる2つのメソッドが追加されました。
workbook.Chartsheets[int index1].MoveSheet(int index2); workbook.Chartsheets[int index1].MoveChartsheet(int index2) |
New feature | SPIREXLS-4684 | 行の削除速度を最適化するためのメソッドが追加されました。 |
Bug | SPIREXLS-4587 | Sheetを画像に変換した後、ピボットテーブルのフィールドが「Column Labels」と表示される問題が修正されました。 |
Bug | SPIREXLS-4605 | XLSX文書をPDFに変換した後、チャートのデータが更新されない問題が修正されました。 |
Bug | SPIREXLS-4614 | テキストボックスを追加した際に、「最上位に設定する」機能が動作しない問題が修正されました。 |
Bug | SPIREXLS-4643 | XLSX文書をPDFに変換した後、表のスタイルが正しくない問題が修正されました。 |
Bug | SPIREXLS-4644 | XLS文書を読み込むときに、アプリケーションが「Syste.OverflowException」をスローする問題が修正されました。 |
Bug | SPIREXLS-4645 | セルから取得されたデータのフォーマットが正しくない問題が修正されました。 |
Bug | SPIREXLS-4646 | HTMLコンテンツを追加した後、アプリケーションが「System.FormatException」をスローする問題が修正されました。 |
Bug | SPIREXLS-4665 | MoveWorksheetメソッドを2回呼び出した後にchartsheetを取得できなくなる問題が修正されました。 |
Bug | SPIREXLS-4666 | セルに中国語の文字が含まれている場合、AutoFitColumnsを設定してもテキストがセルからはみ出す問題が修正されました。 |
Bug | SPIREXLS-4673 | XLSX文書をHTMLに変換した後、背景色が一致しない問題が修正されました。 |
Bug | SPIREXLS-4678 | XLS文書を読み込むときに、アプリケーションが「This structured storage version is not supported.」をスローする問題が修正されました。 |
Bug | SPIREXLS-4681 | 追加されたHTML strongタグのスタイル識別に失敗する問題が修正されました。 |
カテゴリー | ID | 説明 |
New feature | SPIREPPT-2232 | TextFrameのカラム数の設定がサポートされています。
Presentation ppt = new Presentation(); ppt.LoadFromFile(inputFile); IAutoShape shape1 = (IAutoShape)ppt.Slides[0].Shapes[0]; shape1.TextFrame.ColumnCount = 2; IAutoShape shape2 = (IAutoShape)ppt.Slides[1].Shapes[0]; shape2.TextFrame.ColumnCount = 3; ppt.SaveToFile(outputFile, FileFormat.Pptx2013); ppt.Dispose(); |
Bug | SPIREPPT-2205 | 保存したPPTのグラフデータを編する際にエラーが発生した問題が修正されました。 |
Bug | SPIREPPT-2221 | グラフデータにNULL値がある場合に、行/列を切り替える際にエラーが発生した問題が修正されました。 |
Bug | SPIREPPT-2215 SPIREPPT-2225 |
統合セルを分割する際にアプリケーションが「Merged cells found.」をスローする問題が修正されました。 |
Bug | SPIREPPT-2212 SPIREPPT-2243 |
グラフデータの更新が正しくない問題が修正されました。 |
Bug | SPIREPPT-2245 SPIREPPT-2274 |
GroupShapeを画像に保存すると結果がぼやけてしまう問題が修正されました。 |
カテゴリー | ID | 説明 |
Bug | SPIREDOC-8643 | 文書をロードする際にアプリケーションが「System.InvalidCastException」をスローした問題が修正されました。 |
Bug | SPIREDOC-8946 | WordをHTMLに変換した後にコンテンツが失われていた問題が修正されました。 |
Bug | SPIREDOC-9217 | Word文書をロードする際にアプリケーションが「System.InvalidOperationException」をスローした問題が修正されました。 |
Bug | SPIREDOC-9288 | Word文書をマージする際にアプリケーションが「System.ArgumentException」をスローした問題が修正されました。 |
Bug | SPIREDOC-9293 | WordをPDFに変換した後にテキストのインデントエラーの問題が修正されました。 |
Bug | SPIREDOC-9294 | WordをPDFに変換した後の文書の右余白が正しくない問題が修正されました。 |
Bug | SPIREDOC-9295 | WordをPDFに変換した後にテーブルが整列していない問題が修正されました。 |
Bug | SPIREDOC-9377 | WordをHTMLに変換した後にコンテンツの文字化けの問題が修正されました。 |
Spire.PDF 9.6.0のリリースを発表できることを嬉しく思います。このバージョンでは、複数ページのPDFドキュメントを単一のSVGファイルに変換することができます。また、PDFからWord、Excel、PPTへの、OFDからPDFへの変換機能も強化されました。テキスト検索に失敗した問題など、多くの既知の問題も修正されました。詳細は以下の内容を読んでください。
カテゴリー | ID | 説明 |
New feature | SPIREPDF-5977 | 複数ページのPDFドキュメントを単一のSVGファイルに変換することがサポートしています。
//ドキュメントをロードする PdfDocument pdfDocument = new PdfDocument(); pdfDocument.LoadFromFile("input.pdf"); //複数ページ保存PDFを1ページSVGに保存 pdfDocument.ConvertOptions.OutputToOneSvg = true; //ドキュメントを保存する pdfDocument.SaveToFile("outpit.svg",FileFormat.SVG); pdfDocument.Close(); |
Bug | SPIREPDF-1786 | ページサイズは同じでも、ページ数が異なるPDF文書の問題が修正されました。 |
Bug | SPIREPDF-5782 | テキスト検索が失敗する問題が修正されました。 |
Bug | SPIREPDF-5783 | 回転した角度のあるテキストを描画できない問題が修正されました。 |
Bug | SPIREPDF-5901 SPIREPDF-5985 |
OFDをPDFに変換する際にアプリケーションが例外をスローする問題が修正されました。 |
Bug | SPIREPDF-5967 | PDFをPPTに変換した後、単語間の空白が消える問題が修正されました。 |
Bug | SPIREPDF-5992 | PDFをPPTに変換した後、内容が一致しない問題が修正されました。 |
Bug | SPIREPDF-6000 | 表の内容を抽出する際に、一部の内容が正しくない問題が修正されました。 |
Bug | SPIREPDF-6004 | テキストを正規表現でマッチングする際に、アプリケーションが「System.IndexOutOfRangeException」をスローする問題が修正されました。 |
Bug | SPIREPDF-6006 | PDFをExcelに変換した後、セルのフォーマットが正しくない問題が修正されました。 |
Bug | SPIREPDF-5943 | Linux環境でPDFをWordドキュメントに変換する時間を最適化しました。 |
まず、Spire.Presentation 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.presentation</artifactId>
<version>8.5.2</version>
</dependency>
</dependencies>
Spire.Presentation for Java が提供する Presentation.getSlides().insert() と Presentation.getSlides().append() メソッドは、それぞれ指定された場所へのスライドの挿入と追加をサポートします。以下に詳細な操作方法を示します。
import com.spire.presentation.FileFormat;
import com.spire.presentation.Presentation;
public class CopySlidesBetweenPPT {
public static void main(String[] args) throws Exception {
//sample1をロードするためのPresentationオブジェクトを作成する
Presentation pptOne= new Presentation();
pptOne.loadFromFile("sample1.pptx");
//sample2をロードするための別のPresentationオブジェクトを作成する
Presentation pptTwo = new Presentation();
pptTwo.loadFromFile("sample2.pptx");
//sample1のスライドをsample2の指定された場所に挿入する
pptTwo.getSlides().insert(0,pptOne.getSlides().get(0));
//sample1のスライドをsample2の最後に追加する
pptTwo.getSlides().append(pptOne.getSlides().get(3));
//sample2を別のファイルに保存する
pptTwo.saveToFile("output/CopySlidesBetweenPPT.pptx", FileFormat.PPTX_2013);
pptTwo.dispose();
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するには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>11.4.2</version>
</dependency>
</dependencies>
詳しい手順は以下の通りです。
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
public class AcceptTrackedChanges {
public static void main(String[] args) {
//Documentのインスタンスを作成する
Document doc = new Document();
//Wordドキュメントを読み込む
doc.loadFromFile("C:/変更履歴.docx");
//ドキュメントのすべての変更を承諾する
doc.acceptChanges();
//ドキュメントを保存する
doc.saveToFile("すべての変更の承諾.docx", FileFormat.Docx);
}
}
詳しい手順は以下の通りです。
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
public class RejectTrackedChanges {
public static void main(String[] args) {
//Documentのインスタンスを作成する
Document doc = new Document();
//Wordドキュメントを読み込む
doc.loadFromFile("C:/変更履歴.docx");
//ドキュメントのすべての変更を元に戻す
doc.rejectChanges();
//ドキュメントを保存する
doc.saveToFile("すべての変更を元に戻す.docx", FileFormat.Docx);
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Spire.XLS 13.5.6のリリースをお知らせいたします。このバージョンでは、行の削除速度を最適化するためのメソッドが追加され、chartsheetとworksheetを位置間で移動させる2つのメソッドが追加されました。ExcelからPDFや画像への変換機能も強化されました。また、テキストボックスを追加した際に、「最上位に設定」機能が動作しないなど、既知の問題が修正されました。詳細は以下の内容を読んでください。
カテゴリー | ID | 説明 |
New feature | SPIREXLS-4560 | chartsheetとworksheetを位置間で移動させる2つのメソッドが追加されました。
workbook.Chartsheets[int index1].MoveSheet(int index2); workbook.Chartsheets[int index1].MoveChartsheet(int index2) |
New feature | SPIREXLS-4684 | 行の削除速度を最適化するためのメソッドが追加されました。 |
Bug | SPIREXLS-4587 | Sheetを画像に変換した後、ピボットテーブルのフィールドが「Column Labels」と表示される問題が修正されました。 |
Bug | SPIREXLS-4605 | XLSX文書をPDFに変換した後、チャートのデータが更新されない問題が修正されました。 |
Bug | SPIREXLS-4614 | テキストボックスを追加した際に、「最上位に設定する」機能が動作しない問題が修正されました。 |
Bug | SPIREXLS-4643 | XLSX文書をPDFに変換した後、表のスタイルが正しくない問題が修正されました。 |
Bug | SPIREXLS-4644 | XLS文書を読み込むときに、アプリケーションが「Syste.OverflowException」をスローする問題が修正されました。 |
Bug | SPIREXLS-4645 | セルから取得されたデータのフォーマットが正しくない問題が修正されました。 |
Bug | SPIREXLS-4646 | HTMLコンテンツを追加した後、アプリケーションが「System.FormatException」をスローする問題が修正されました。 |
Bug | SPIREXLS-4665 | MoveWorksheetメソッドを2回呼び出した後にchartsheetを取得できなくなる問題が修正されました。 |
Bug | SPIREXLS-4666 | セルに中国語の文字が含まれている場合、AutoFitColumnsを設定してもテキストがセルからはみ出す問題が修正されました。 |
Bug | SPIREXLS-4673 | XLSX文書をHTMLに変換した後、背景色が一致しない問題が修正されました。 |
Bug | SPIREXLS-4678 | XLS文書を読み込むときに、アプリケーションが「This structured storage version is not supported.」をスローする問題が修正されました。 |
Bug | SPIREXLS-4681 | 追加されたHTML strongタグのスタイル識別に失敗する問題が修正されました。 |
ドキュメントの比較とは、異なる貢献者による変更を識別するために、新しいバージョンのドキュメントを以前のコピーと照合するプロセスです。これらの違いには、単語、文章、段落の追加や削除、書式の調整などが含まれます。この記事では、Spire.Doc for Java を使用して、Java で2つの 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>11.4.2</version>
</dependency>
</dependencies>
比較結果を別の Word ドキュメントに保存すると、挿入、削除、書式の変更など、元のドキュメントに加えられたすべての変更を確認することができます。以下は、Spire.Doc for Java を使用して、2つのドキュメントを比較し、その結果を3つ目の Word ドキュメントに保存する手順です。
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
public class CompareDocuments {
public static void main(String[] args) {
//Documentのオブジェクトを2つ作成する
Document doc1 = new Document();
Document doc2 = new Document();
//Wordドキュメントを読み込む
doc1.loadFromFile("C:/比較1.docx");
//他のWordドキュメントを読み込む
doc2.loadFromFile("C:/比較2.docx");
//2つのドキュメントを比較する
doc1.compare(doc2, "John");
//相違点を第3のドキュメントに保存する
doc1.saveToFile("相違点.docx", FileFormat.Docx_2013);
doc1.dispose();
}
}
時には、全体の差分ではなく、挿入と削除だけを気にすることがあります。以下は、2つのリストで挿入と削除を取得する手順です。
import com.spire.doc.DifferRevisions;
import com.spire.doc.Document;
import com.spire.doc.DocumentObject;
import com.spire.doc.fields.TextRange;
import com.spire.ms.System.Collections.Generic.List;
public class CompareReturnResultsInLists {
public static void main(String[] args) {
//Documentのオブジェクトを2つ作成する
Document doc1 = new Document();
Document doc2 = new Document();
//Wordドキュメントを読み込む
doc1.loadFromFile("C:/比較1.docx");
//他のWordドキュメントを読み込む
doc2.loadFromFile("C:/比較2.docx");
//2つのWordドキュメントを比較する
doc1.compare(doc2, "Author");
//改訂を取得する
DifferRevisions differRevisions = new DifferRevisions(doc1);
//挿入改訂をリストで返す
List insertRevisionsList = differRevisions.getInsertRevisions();
//削除改訂をリストで返す
List deleteRevisionsList = differRevisions.getDeleteRevisions();
//2つのint変数を作成する
int m = 0;
int n = 0;
//挿入改訂リストをループする
for (int i = 0; i < insertRevisionsList.size(); i++)
{
if (insertRevisionsList.get(i) instanceof TextRange)
{
m += 1;
//特定の改訂を取得し、その内容を取得する
TextRange textRange = (TextRange)insertRevisionsList.get(i) ;
System.out.println("挿入 #" + m + ":" + textRange.getText());
}
}
System.out.println("============================================");
//削除改訂リストをループする
for (int i = 0; i < deleteRevisionsList.size() ; i++)
{
if (deleteRevisionsList.get(i) instanceof TextRange)
{
n += 1;
//特定の改訂を取得し、その内容を取得する
TextRange textRange = (TextRange) deleteRevisionsList.get(i) ;
System.out.println("削除 #" + n + ":" + textRange.getText());
}
}
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
大型文書において、特定の重要情報を素早く見つけるためには、検索機能が非常に有用です。同時に、明るい色でそれらを強調表示することは、読者の注意を引くために効果的な方法です。この記事では、Spire.Doc for C++ を使用して C++ で Word 文書でテキストを検索して強調表示する方法について説明します。
Spire.Doc for C++ をアプリケーションに組み込むには、2つの方法があります。一つは NuGet 経由でインストールする方法、もう一つは当社のウェブサイトからパッケージをダウンロードし、ライブラリをプログラムにコピーする方法です。NuGet 経由のインストールの方が便利で、より推奨されます。詳しくは、以下のリンクからご覧いただけます。
Spire.Doc for C++ を C++ アプリケーションに統合する方法
Spire.Doc for C++ では、Document->FindAllString(LPCWSTR_S matchString, bool caseSensitive, bool wholeWord) メソッドを使用して、指定されたテキスト文字列のすべてのインスタンスを検索します。次に、これらのインスタンスをループして明るい色で強調表示することができます。以下は詳細な手順です。
#include "Spire.Doc.o.h"
#include <iostream>
using namespace Spire::Doc;
using namespace Spire::Common;
int main() {
std::wstring inputFile = L"input.docx";
std::wstring outputFile = L"FindAndHighlight.docx";
//wordドキュメントを作成する
intrusive_ptr<Document> document = new Document();
//Word文書をディスクからロードする
document->LoadFromFile(inputFile.c_str());
//すべてのテキストを検索
std::vector<intrusive_ptr<TextSelection>> textSelections = document->FindAllString(L"AI", false, true);
//すべての一致するテキストをループし、ハイライト色を設定する
for (auto selection : textSelections)
{
selection->GetAsOneRange()->GetCharacterFormat()->SetHighlightColor(Color::GetYellow());
}
//結果ドキュメントを保存する
document->SaveToFile(outputFile.c_str(), FileFormat::Docx);
document->Close();
}
また、Document->FindString(LPCWSTR_S matchString, bool caseSensitive, bool wholeWord) メソッドを使用することで、指定したテキスト文字列の最初のインスタンスのみを検索し、そのハイライト色を設定することもできます。手順は以下の通りです。
#include "Spire.Doc.o.h"
#include <iostream>
using namespace Spire::Doc;
using namespace Spire::Common;
int main() {
std::wstring inputFile = L"input.docx";
std::wstring outputFile = L" FindAndHighlightFirst.docx";
//wordドキュメントを作成する
intrusive_ptr<Document> document = new Document();
//Word文書をディスクからロードする
document->LoadFromFile(inputFile.c_str());
//最初に一致するテキストを検索する
intrusive_ptr<TextSelection> textSelection = document->FindString(L"AI", false, true);
//ハイライト色を設定する
textSelection->GetAsOneRange()->GetCharacterFormat()->SetHighlightColor(Color::GetYellow());
//結果ドキュメントを保存する
document->SaveToFile(outputFile.c_str(), FileFormat::Docx);
document->Close();
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。