チュートリアル
簡単にライブラリーを使用するためのチュートリアルコレクション
複数のワークブックを1つのワークブックにまとめた場合、関連するデータをワークシートで管理するのが便利です。ただし、時には1つのワークブック内のワークシートを別のワークブックに分割し、他の情報を漏らさずに個々のワークシートを配布することも必要です。この記事では、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.8.4</version>
</dependency>
</dependencies>
ワークブックの分割は、そのワークブックのワークシートを取得し、新しいワークブックに挿入することで実現できます。詳しい手順については、以下のとおりです。
import com.spire.xls.FileFormat;
import com.spire.xls.Workbook;
public class splitWorkbook {
public static void main(String[] args) {
//Workbookクラスのオブジェクトを作成する
Workbook wb = new Workbook();
//Excelファイルを読み込む
wb.loadFromFile("貸借対照表.xlsx");
//Workbookの変数を宣言する
Workbook newWb;
//String変数を宣言する
String sheetName;
//生成されたExcelファイルを格納するフォルダパスを指定する
String folderPath = "output\\";
//元ファイルのワークシートをループする
for (int i = 0; i < wb.getWorksheets().getCount(); i++) {
//Workbookオブジェクトを初期化する
newWb = new Workbook();
//デフォルトのシートを削除する
newWb.getWorksheets().clear();
//元のワークブックの特定のワークシートを新しいワークブックに追加する
newWb.getWorksheets().addCopy(wb.getWorksheets().get(i));
//ワークシートの名前を取得する
sheetName = wb.getWorksheets().get(i).getName();
//新しいワークブックを指定されたフォルダに保存する
newWb.saveToFile(folderPath + sheetName + ".xlsx", FileFormat.Version2013);
}
}
}
Spire.XLS for Java では、ワークブック内のワークシートをコピーして新しいワークブックに追加する Workbook.getWorksheets().addCopy() という機能が提供されています。各ワークブックをループして、すべてのワークシートをコピーすることができます。Excel ワークブックを結合する詳細な手順は以下のとおりです。
import com.spire.xls.*;
public class mergeWorkbooks {
public static void main(String[] args){
//Excelワークブックを入力する
String[] inputFiles = new String[]{"output/概要.xlsx","output/負債と資本.xlsx", "output/資産.xlsx"};
//Workbookクラスのオブジェクトを作成する
Workbook newBook = new Workbook();
//すべてのワークシートを削除する
newBook.getWorksheets().clear();
//別のWorkbookクラスのオブジェクトを作成する
Workbook tempBook = new Workbook();
//Excelファイルをループして、各Excelワークブックのワークシートを新しいワークブックにコピーする
for (String file : inputFiles)
{
tempBook.loadFromFile(file);
for (Object sheet : (Iterable)tempBook.getWorksheets())
{
newBook.getWorksheets().addCopy((Worksheet) sheet, WorksheetCopyType.CopyAll);
}
}
//結果ファイルを保存する
newBook.saveToFile("ワークブックの結合.xlsx", ExcelVersion.Version2013);
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Spire.Office 7.12.5のリリースを発表できることを嬉しく思います。このバージョンでは、Spire.Docは.NET 7.0プラットフォームと段落の「文書のグリッドを定義したら、グリッドに揃えます」機能の設定をサポートしました。Spire.PDFはPDFからWordに変換する新しいインタフェースが追加されました。Spire.XLSは.NET 7.0をサポートしました。Spire.PresentationはPPTスライドを画像として保存した後にコンテンツが失われていた問題が修正されました。さらに、このバージョンでは、多くの既知の問題も修正しました。詳細は以下の内容を読んでください。
このバージョンでは、Spire.Doc,Spire.PDF,Spire.XLS,Spire.Email,Spire.DocViewer, Spire.PDFViewer,Spire.Presentation,Spire.Spreadsheet, Spire.OfficeViewer, Spire.DocViewer, Spire.Barcode, Spire.DataExportの最新バージョンが含まれています。
カテゴリー | ID | 説明 |
New feature | - | .NET 7.0プラットフォームをサポートしました。 |
New feature | SPIREDOC-7985 | 段落の「文書のグリッドを定義したら、グリッドに揃えます」機能の設定をサポートしました。
Document document = new Document(inputFile); Paragraph paragraph = document.Sections[0].Paragraphs[0]; paragraph.Format.SnapToGrid = true; |
Bug | SPIREDOC-5863 | WordをPDFに変換した後、一部のコンテンツに紫の背景色が追加設定されていた問題が修正されました。 |
Bug | SPIREDOC-5963 | WordをPDFに変換した後の改ページが正しくない問題が修正されました。 |
Bug | SPIREDOC-6776 | WordをPDFに変換した後の表の内容が正しくない問題が修正されました。 |
Bug | SPIREDOC-8661 | WordをPDFに変換すると画像が失われる問題が修正されました。 |
Bug | SPIREDOC-8781 | HTMLをWordに変換する際にプログラムがハングアップしていた問題が修正されました。 |
Bug | SPIREDOC-8841 | テキストを置き換えると文字の間隔が変わる問題を修正しました。 |
Bug | SPIREDOC-8891 | 埋め込まれたOLEオブジェクトのファイル名がヘブライ語の場合にファイル名が文字化けしてしまう問題が修正されました。 |
カテゴリー | ID | 説明 |
New feature | - | PDFをWordに変換する新しいインタフェースが追加されました。
PdfToWordConverter converter= new PdfToWordConverter (inputPDF); converter.SaveToDocx(outputWord); converter.Dispose(); |
Bug | SPIREPDF-5580 | PDFをExcelに変換した後に画像が失われていた問題が修正されました。 |
Bug | SPIREPDF-5600 | 位置によって検出されたテキストの内容が正しくない問題が修正されました。 |
Bug | SPIREPDF-5616 | ドキュメントをマージするときにプログラムが「Badly formed dictionary next should be a name. before 377658」をスローする問題が修正されました。 |
Bug | SPIREPDF-5654 | pdfDocument.InsertPageメソッドを使用してドキュメントをマージする際にプログラムが「System.StackOverflowException」をスローする問題が修正されました。 |
Bug | SPIREPDF-5655 | PDFをExcelに変換した後に箇条書きが正しく表示されなかった問題が修正されました。 |
Bug | SPIREPDF-5656 | MS ExcelツールでPDFをExcelに変換した後に、結果ドキュメントを開くのに失敗する問題が修正されました。 |
Bug | SPIREPDF-5667 | ドキュメントをマージする際にプログラムが「com.spire.pdf.packages.sprnsn cannot be cast to com.spire.pdf.packages.sprvqe」をスローする問題問題が修正されました。 |
Bug | SPIREPDF-5680 | ドイツ語のシステム環境下でPDFコンテンツが不完全に印刷されていた問題が修正されました。 |
カテゴリー | ID | 説明 |
Bug | SPIREXLS-783 | ExcelをPDFに変換した後の枠線が正しくない問題が修正されました。 |
Bug | SPIREXLS-4288 | Save()関数を呼び出して.et形式の文書を保存する場合のデータ保存に失敗する問題を修正しました。 |
Bug | SPIREXLS-4297 | ExcelをCSVに変換した後、数式が計算されなかった問題が修正されました。 |
Bug | SPIREXLS-4317 | SetActiveCell()関数を呼び出したときに選択されていたセルがアクティブになっていた問題が修正されました。 |
Bug | SPIREXLS-4325 | ExcelをPDFに変換した後にA列のデータが失われていた問題が修正されました。 |
Bug | SPIREXLS-4328 | CSVファイル内のデータをデータテーブルに変換する際のデータフォーマットが正しくない問題が修正されました。 |
Bug | SPIREXLS-4330 | HTMLをExcelに変換した後に結果ファイルの中国語文字化けが修正されました。 |
Bug | SPIREXLS-4332 | 指定したセル範囲を画像に連続的に変換する際に、アプリケーションが「System.NullReferenceException」をスローする問題が修正されました。 |
カテゴリー | ID | 説明 |
Bug | SPIREPPT-2109 | PPTスライドを画像として保存した後にコンテンツが失われていた問題が修正されました。 |
スライドは PowerPoint ドキュメントの重要な要素の1つで、著者が共有したい情報やアイデアが含まれています。PowerPoint ドキュメントを編集する際には、新しいスライドを作成したり、不要なスライドを削除したり、一時的にスライドを非表示にしたりするなど、スライドに対して操作を実行することは避けられません。この記事では、Spire.Presentation for Java を使用して PowerPoint でスライドを追加、隠す、または削除する方法を示します。
まず、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>7.12.0</version>
</dependency>
</dependencies>
Spire.Presentation for Java が提供する Presentation.getSlides().append() メソッドを使用すると、PowerPoint で最後のスライドの後に新しいスライドを追加できます。詳細な手順は次のとおりです。
import com.spire.presentation.*;
public class AddNewSlideinPowerPoint {
public static void main(String[] args) throws Exception {
//Presentationクラスのインスタンスを初期化する
Presentation presentation = new Presentation();
//PowerPointドキュメントをロードする
presentation.loadFromFile("Sample.pptx");
//PowerPointの最後の後に新しい空白のスライドを追加する
presentation.getSlides().append();
//結果ドキュメントを保存する
presentation.saveToFile("AddSlide.pptx", FileFormat.PPTX_2013);
}
}
他の情報を追加するには、特定のスライドの前にスライドを挿入する必要がある場合もあります。以下に詳細な操作手順を示します。
import com.spire.presentation.*;
public class InsertSlideinPowerPoint {
public static void main(String[] args) throws Exception {
//Presentationクラスのインスタンスを初期化する
Presentation presentation = new Presentation();
//PowerPointドキュメントをロードする
presentation.loadFromFile("Sample.pptx");
//2枚目のスライドの前に空白のスライドを挿入する
presentation.getSlides().insert(1);
//結果ドキュメントを保存する
presentation.saveToFile("InsertSlide.pptx", FileFormat.PPTX_2013);
}
}
プレゼンテーション中は、直接削除するのではなく、一時的に表示したくないスライドを非表示にすることができます。以下は、特定の PowerPoint スライドを非表示または表示にする手順です。
import com.spire.presentation.*;
public class HideUnhideSlides {
public static void main(String[] args) throws Exception {
//Presentationクラスのインスタンスを初期化する
Presentation presentation = new Presentation();
//PowerPointドキュメントをロードする
presentation.loadFromFile("Sample.pptx");
//2枚目のスライドを取得する
ISlide slide = presentation.getSlides().get(1);
//スライドを隠す
slide.setHidden(true);
//スライドの隠しを解除する
//slide.setHidden(false);
//結果ドキュメントを保存する
presentation.saveToFile("HideSlide.pptx", FileFormat.PPTX_2010);
}
}
Spire.Presemtation for Java が提供する Presentation.getSlides().removeAt(int index) メソッドは、ドキュメントから指定したスライドを削除することをサポートします。詳細な手順は次のとおりです。
import com.spire.presentation.*;
public class DeletePowerPointSlide {
public static void main(String[] args) throws Exception {
//Presentationクラスのインスタンスを初期化する
Presentation presentation = new Presentation();
//PowerPointドキュメントをロードする
presentation.loadFromFile("Sample.pptx ");
//2枚目のスライドを削除する
presentation.getSlides().removeAt(1);
//結果ドキュメントを保存する
presentation.saveToFile("RemoveSlide.pptx", FileFormat.PPTX_2013);
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Spire.Office for Java 7.12.4のリリースを発表できることをうれしく思います。今回のアップデートには、いくつかの新機能が含まれています。Spire.PDF for JavaはラベルPDFファイルの作成がサポートされました。Spire.Presentation for Javaはテーブル全体のコンテンツを新しいスライドにクローンすることをサポートしました。Spire.Doc for JavaはWordからPDFへの変換機能が強化されました。Spire.XLS for JavaはExcelからPDFと画像への変換機能とXLSMからPDFへの変換機能が強化されました。さらに、多くの既知のバグが正常に修正されました。詳細は以下の内容を読んでください。
カテゴリー | ID | 説明 |
New feature | - | ラベルPDFファイルの作成がサポートされました。
//Create a pdf document PdfDocument doc = new PdfDocument(); //Add page doc.getPages().add(); //Set tab order doc.getPages().get(0).setTabOrder(TabOrder.Structure); //Create PdfTaggedContent PdfTaggedContent taggedContent = new PdfTaggedContent(doc); taggedContent.setLanguage("en-US"); taggedContent.setTitle("test"); //Set font PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Times New Roman",Font.PLAIN,12), true); PdfSolidBrush brush = new PdfSolidBrush(new PdfRGBColor(Color.black)); //Append elements PdfStructureElement article = taggedContent.getStructureTreeRoot().appendChildElement(PdfStandardStructTypes.Document); PdfStructureElement paragraph1 = article.appendChildElement(PdfStandardStructTypes.Paragraph); PdfStructureElement span1 = paragraph1.appendChildElement(PdfStandardStructTypes.Span); span1.beginMarkedContent(doc.getPages().get(0)); PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Justify); doc.getPages().get(0).getCanvas().drawString("Spire.PDF for .NET is a professional PDF API applied to creating, writing, editing, handling and reading PDF files.", font, brush, new Rectangle(40, 0, 480, 80), format); span1.endMarkedContent(doc.getPages().get(0)); PdfStructureElement paragraph2 = article.appendChildElement(PdfStandardStructTypes.Paragraph); paragraph2.beginMarkedContent(doc.getPages().get(0)); doc.getPages().get(0).getCanvas().drawString("Spire.PDF for .NET can be applied to easily convert Text, Image, SVG, HTML to PDF and convert PDF to Excel with C#/VB.NET in high quality.", font, brush, new Rectangle(40, 80, 480, 60), format); paragraph2.endMarkedContent(doc.getPages().get(0)); PdfStructureElement figure1 = article.appendChildElement(PdfStandardStructTypes.Figure); //Set Alternate text figure1.setAlt("replacement text1"); figure1.beginMarkedContent(doc.getPages().get(0), null); PdfImage image = PdfImage.fromFile("E-logo.png"); Dimension2D dimension2D = new Dimension(); dimension2D.setSize( 100,100); doc.getPages().get(0).getCanvas().drawImage(image, new Point2D.Float(40, 200),dimension2D); figure1.endMarkedContent(doc.getPages().get(0)); PdfStructureElement figure2 = article.appendChildElement(PdfStandardStructTypes.Figure); //Set Alternate text figure2.setAlt( "replacement text2"); figure2.beginMarkedContent(doc.getPages().get(0), null); doc.getPages().get(0).getCanvas().drawRectangle(PdfPens.getBlack(), new Rectangle(300, 200, 100, 100)); figure2.endMarkedContent(doc.getPages().get(0)); //Save to file String result = "CreateTaggedFile_result.pdf"; doc.saveToFile(result); doc.close(); |
Bug | SPIREPDF-4806 | 抽出画像の時間がかかる問題を最適化しました。 |
Bug | SPIREPDF-4856 | ドキュメント画像を圧縮する際のメモリ消費の問題を最適化しました。 |
Bug | SPIREPDF-4860 SPIREPDF-5583 |
PDFのロード時にアプリケーションが長時間ハングアップしていた問題が修正されました。 |
Bug | SPIREPDF-4955 | PDF文書の圧縮に時間がかかる問題を最適化しました。 |
Bug | SPIREPDF-5496 | PDFをExcelに変換するためにCustomFontsFoldersを定義する際に、アプリケーションが「TimesNewRomanのフォントが見つかりません」をスローする問題が修正されました。 |
Bug | SPIREPDF-5622 | PdfGridを使用して表を描画する際に、枠線の太さが異なる問題が修正されました。 |
Bug | SPIREPDF-5641 | 異なる場所で描画すると、グリッドセルの内容が正しく表示されない問題を修正しました。 |
Bug | SPIREPDF-5646 | PDFをマージすると、アプリケーションが「Unexpected token Unknown before 105」をスローする問題が修正されました。 |
カテゴリー | ID | 説明 |
New feature | SPIREPPT-2110 | テーブル全体の内容を新しいスライドにクローンすることをサポートしました。
Presentation ppt = new Presentation(); ppt.loadFromFile(inputPPT); ITable table = (ITable)ppt.getSlides().get(0).getShapes().get(0); Presentation ppt2 = new Presentation(); ISlide slide = ppt2.getSlides().get(0); slide.getShapes().appendTable(0,0, table); ppt2.saveToFile(outputFile, FileFormat.PPTX_2013); |
Bug | SPIREPPT-2112 | テキストの塗りつぶし色が正しく取得されない問題が修正されました。 |
Bug | SPIREPPT-2113 | ドキュメント内のビデオを削除した後に、ドキュメントのサイズが変化しない問題が修正されました。 |
Bug | SPIREPPT-2122 | PPTをSVGに変換した後に修正された内容が更新されていない問題が修正されました。 |
Bug | SPIREPPT-2127 | urlデータが追加されたビデオを再生できない問題が修正されました。 |
Bug | SPIREPPT-2128 | PPTを画像に変換した後にコンテンツが回転する問題が修正されました。 |
Bug | SPIREPPT-2129 | PPTをSVGに変換した後に背景スタイルが正しくない問題が修正されました。 |
Bug | SPIREPPT-2130 | PPTを画像に変換した後にチャートが失われていた問題が修正されました。 |
カテゴリー | ID | 説明 |
Bug | SPIREXLS-4147 | ExcelをPDFと画像に変換した後の内容が正しくない問題が修正されました。 |
Bug | SPIREXLS-4260 | ExcelをPDFに変換した後のコンテンツフォーマットが正しくない問題が修正されました。 |
Bug | SPIREXLS-4236 | 作成したピボット・テーブルの日付フォーマットが正しくない問題が修正されました。 |
Bug | SPIREXLS-4298 | XLSMをPDFに変換すると空白ページが多くなる問題が修正されました。 |
Bug | SPIREXLS-4289 | Worksheet.MaxDisplayRangeの領域が画像が含まれていなかったりする問題が修正されました。 |
Bug | SPIREXLS-4319 | ExcelをPDFに変換する際にプログラムが「Value is too large or too small」をスローする問題が修正されました。 |
Bug | SPIREXLS-4327 | ExcelをPDFに変換した後の日付が正しくない問題が修正されました。 |
Bug | SPIREXLS-4329 | Excelを画像に変換した後の内容が不完全だった問題が修正されました。 |
Bug | SPIREXLS-4331 SPIREXLS-4335 |
en_INシステムでExcelをPDFに変換した後の数値フォーマットが正しくない問題が修正されました。 |
Bug | SPIREXLS-4339 | 画像の透かしを描画する際に透明度が失われていた問題が修正されました。 |
Bug | SPIREXLS-4348 | ExcelをPDFに変換する際にプログラムが「Invalid row index」をスローする問題が修正されました。 |
カテゴリー | ID | 説明 |
Bug | SPIREDOC-8790 | WordをPDFに変換する際にテーブルのフォーマットが正しくない問題が修正されました。 |
Bug | SPIREDOC-8791 | WordをPDFに変換する際にテーブルが失われていた問題が修正されました。 |
Spire.Presentation for Java 7.12.4のリリースを発表できることをうれしく思います。今回の更新では、テーブル全体のコンテンツを新しいスライドにクローンすることをサポートしました。PPTから画像への変換機能も強化されました。また、このリリースでは、テキストの塗りつぶし色が正しく取得されないなどの既知の問題も修正されました。詳細は以下の内容を読んでください。
カテゴリー | ID | 説明 |
New feature | SPIREPPT-2110 | テーブル全体の内容を新しいスライドにクローンすることをサポートしました。
Presentation ppt = new Presentation(); ppt.loadFromFile(inputPPT); ITable table = (ITable)ppt.getSlides().get(0).getShapes().get(0); Presentation ppt2 = new Presentation(); ISlide slide = ppt2.getSlides().get(0); slide.getShapes().appendTable(0,0, table); ppt2.saveToFile(outputFile, FileFormat.PPTX_2013); |
Bug | SPIREPPT-2112 | テキストの塗りつぶし色が正しく取得されない問題が修正されました。 |
Bug | SPIREPPT-2113 | ドキュメント内のビデオを削除した後に、ドキュメントのサイズが変化しない問題が修正されました。 |
Bug | SPIREPPT-2122 | PPTをSVGに変換した後に修正された内容が更新されていない問題が修正されました。 |
Bug | SPIREPPT-2127 | urlデータが追加されたビデオを再生できない問題が修正されました。 |
Bug | SPIREPPT-2128 | PPTを画像に変換した後にコンテンツが回転する問題が修正されました。 |
Bug | SPIREPPT-2129 | PPTをSVGに変換した後に背景スタイルが正しくない問題が修正されました。 |
Bug | SPIREPPT-2130 | PPTを画像に変換した後にチャートが失われていた問題が修正されました。 |
Spire.XLS for Java 12.12.4のリリースを発表できることを嬉しく思います。今回の更新では、ExcelからPDFと画像への変換機能とXLSMからPDFへの変換機能が強化されました。また、作成されたピボット・テーブルの日付フォーマットが間違っていたり、Worksheet.MaxDisplayRangeの領域に画像が含まれていなかったりするなど、既知の問題も修正されました。詳細は以下の内容を読んでください。
カテゴリー | ID | 説明 |
Bug | SPIREXLS-4147 | ExcelをPDFと画像に変換した後の内容が正しくない問題が修正されました。 |
Bug | SPIREXLS-4260 | ExcelをPDFに変換した後のコンテンツフォーマットが正しくない問題が修正されました。 |
Bug | SPIREXLS-4236 | 作成したピボット・テーブルの日付フォーマットが正しくない問題が修正されました。 |
Bug | SPIREXLS-4298 | XLSMをPDFに変換すると空白ページが多くなる問題が修正されました。 |
Bug | SPIREXLS-4289 | Worksheet.MaxDisplayRangeの領域が画像が含まれていなかったりする問題が修正されました。 |
Bug | SPIREXLS-4319 | ExcelをPDFに変換する際にプログラムが「Value is too large or too small」をスローする問題が修正されました。 |
Bug | SPIREXLS-4327 | ExcelをPDFに変換した後の日付が正しくない問題が修正されました。 |
Bug | SPIREXLS-4329 | Excelを画像に変換した後の内容が不完全だった問題が修正されました。 |
Bug | SPIREXLS-4331 SPIREXLS-4335 |
en_INシステムでExcelをPDFに変換した後の数値フォーマットが正しくない問題が修正されました。 |
Bug | SPIREXLS-4339 | 画像の透かしを描画する際に透明度が失われていた問題が修正されました。 |
Bug | SPIREXLS-4348 | ExcelをPDFに変換する際にプログラムが「Invalid row index」をスローする問題が修正されました。 |
Spire.Doc 10.12.4のリリースを発表できることを嬉しく思います。このバージョンでは、.NET 7.0プラットフォームをサポートしました。今回の更新は、段落の「文書のグリッドを定義したら、グリッドに揃えます」機能の設定をサポートしました。WordからPDFへの変換機能も強化しました。また、テキストを置き換えると文字の間隔が変わるなどの問題も修正しました。詳細は以下の内容を読んでください。
カテゴリー | ID | 説明 |
New feature | - | .NET 7.0プラットフォームをサポートしました。 |
New feature | SPIREDOC-7985 | 段落の「文書のグリッドを定義したら、グリッドに揃えます」機能の設定をサポートしました。
Document document = new Document(inputFile); Paragraph paragraph = document.Sections[0].Paragraphs[0]; paragraph.Format.SnapToGrid = true; |
Bug | SPIREDOC-5863 | WordをPDFに変換した後、一部のコンテンツに紫の背景色が追加設定されていた問題が修正されました。 |
Bug | SPIREDOC-5963 | WordをPDFに変換した後の改ページが正しくない問題が修正されました。 |
Bug | SPIREDOC-6776 | WordをPDFに変換した後の表の内容が正しくない問題が修正されました。 |
Bug | SPIREDOC-8661 | WordをPDFに変換すると画像が失われる問題が修正されました。 |
Bug | SPIREDOC-8781 | HTMLをWordに変換する際にプログラムがハングアップしていた問題が修正されました。 |
Bug | SPIREDOC-8841 | テキストを置き換えると文字の間隔が変わる問題を修正しました。 |
Bug | SPIREDOC-8891 | 埋め込まれたOLEオブジェクトのファイル名がヘブライ語の場合にファイル名が文字化けしてしまう問題が修正されました。 |
ハイパーリンクは、クリックするだけでファイルやウェブサイト、電子メール、ドキュメントの特定の位置に移動できるため、発表資料やワークブックなどのドキュメントに広く使用されています。Office 文書では、テキストや画像にハイパーリンクを追加することができます。そして、ハイパーリンクを持つテキストは、通常、ユーザーがハイパーリンクに気付くことができるように、通常のテキストとは異なる形式になっています。今回は、Spire.XLS for Java ライブラリを使用して、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.8.4</version>
</dependency>
</dependencies>
Excel ワークブックにテキストのハイパーリンクを挿入するには、Worksheet.getRange().get() で特定のセルを取得し、Worksheet.getHyperlinks().add() メソッドでハイパーリンクをそのセルに挿入することが必要です。詳細な手順は以下の通りです。
import com.spire.xls.*;
public class insertTextHyperlinks {
public static void main(String []args){
//Workbookクラスのインスタンスを作成する
Workbook workbook = new Workbook();
//1つ目のワークシートを取得する
Worksheet sheet = workbook.getWorksheets().get(0);
//ウェブサイトへリンクするテキストのハイパーリンクを追加する
CellRange cell1 = sheet.getRange().get("B3");
HyperLink urlLink = sheet.getHyperLinks().add(cell1);
urlLink.setType(HyperLinkType.Url);
urlLink.setTextToDisplay("ウェブサイトへのリンク");
urlLink.setAddress("https://www.google.com/");
//電子メールにリンクするテキストのハイパーリンクを追加する
CellRange cell2 = sheet.getRange().get("E3");
HyperLink mailLink = sheet.getHyperLinks().add(cell2);
mailLink.setType(HyperLinkType.Url);
mailLink.setTextToDisplay("電子メールへのリンク");
mailLink.setAddress("mailto:このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。");
//外部ファイルへリンクするテキストのハイパーリンクを追加する
CellRange cell3 = sheet.getRange().get("B7");
HyperLink fileLink = sheet.getHyperLinks().add(cell3);
fileLink.setType(HyperLinkType.File);
fileLink.setTextToDisplay("外部ファイルへのリンク");
fileLink.setAddress("C:\\報告書.xlsx");
//他のシートのセルにリンクするテキストのハイパーリンクを追加する
CellRange cell4 = sheet.getRange().get("E7");
HyperLink linkToSheet = sheet.getHyperLinks().add(cell4);
linkToSheet.setType(HyperLinkType.Workbook);
linkToSheet.setTextToDisplay("シート2のセルへのリンク");
linkToSheet.setAddress("Sheet2!B5");
//UNCのアドレスにリンクするテキストのハイパーリンクを追加する
CellRange cell5 = sheet.getRange().get("B11");
HyperLink uncLink = sheet.getHyperLinks().add(cell5);
uncLink.setType(HyperLinkType.Unc);
uncLink.setTextToDisplay("UNCアドレスへのリンク");
uncLink.setAddress("\\\\192.168.0.1");
//列の幅を自動調整する
sheet.autoFitColumn(2);
sheet.autoFitColumn(5);
//ファイルを保存する
workbook.saveToFile("テキストのハイパーリンク.xlsx", ExcelVersion.Version2013);
}
}
Excel ワークブックに画像のハイパーリンクを挿入するには、画像を挿入または取得し、XlsBitmapShape.setHyperLink() メソッドを使って画像にハイパーリンクを追加する必要があります。詳細な手順は以下の通りです。
import com.spire.xls.ExcelPicture;
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
public class insertImageHyperlinks {
public static void main(String []args){
//Workbookクラスのインスタンスを作成する
Workbook workbook = new Workbook();
//1つ目のワークシートを取得する
Worksheet sheet = workbook.getWorksheets().get(0);
//ワークシートに画像を挿入する
ExcelPicture picture = sheet.getPictures().add(5, 3, "Spire.XLS for Java.png");
sheet.setRowHeight(5,60);
sheet.setColumnWidth(3,11);
//画像にハイパーリンクを追加する
picture.setHyperLink("https://www.e-iceblue.com", true);
//結果ファイルを保存する
workbook.saveToFile("画像のハイパーリンク.xlsx", ExcelVersion.Version2013);
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Spire.PDF 8.12.7のリリースを発表できることを嬉しく思います。このバージョンでは、PDFからWordに変換する新しいインタフェースが追加されました。今回の更新では、PDFからExcelへの変換機能も強化されました。また、このリリースでは、位置によって検出されたテキストの内容が正しくないなど、多くの既知の問題が修正されました。詳細は以下の内容を読んでください。
カテゴリー | ID | 説明 |
New feature | - | PDFをWordに変換する新しいインタフェースが追加されました。
PdfToWordConverter converter= new PdfToWordConverter (inputPDF); converter.SaveToDocx(outputWord); converter.Dispose(); |
Bug | SPIREPDF-5580 | PDFをExcelに変換した後に画像が失われていた問題が修正されました。 |
Bug | SPIREPDF-5600 | 位置によって検出されたテキストの内容が正しくない問題が修正されました。 |
Bug | SPIREPDF-5616 | ドキュメントをマージするときにプログラムが「Badly formed dictionary next should be a name. before 377658」をスローする問題が修正されました。 |
Bug | SPIREPDF-5654 | pdfDocument.InsertPageメソッドを使用してドキュメントをマージする際にプログラムが「System.StackOverflowException」をスローする問題が修正されました。 |
Bug | SPIREPDF-5655 | PDFをExcelに変換した後に箇条書きが正しく表示されなかった問題が修正されました。 |
Bug | SPIREPDF-5656 | MS ExcelツールでPDFをExcelに変換した後に、結果ドキュメントを開くのに失敗する問題が修正されました。 |
Bug | SPIREPDF-5667 | ドキュメントをマージする際にプログラムが「com.spire.pdf.packages.sprnsn cannot be cast to com.spire.pdf.packages.sprvqe」をスローする問題問題が修正されました。 |
Bug | SPIREPDF-5680 | ドイツ語のシステム環境下でPDFコンテンツが不完全に印刷されていた問題が修正されました。 |
電子文書では透かしを使用して著作権を保護したり、状態を指定したりすることがよくあります。Microsoft Excel には Excel に透かしを追加するための機能はありませんが、ヘッダー画像やワードアートを挿入するなど、透かし効果を実現するための特別な方法を使用することができます。この記事では、Spire.XLS for .NET を使用して、C# および VB.NET でプログラムによって Excel に透かしを追加する方法を紹介します。
まず、Spire.XLS for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.XLS
ヘッダー画像を作成するために、DrawWatermarkImage() というカスタムの方法を定義しました。この方法では、文字列(機密、ドラフト、内部使用などの透かしとして表示するテキスト)に基づいてカスタムの画像を生成できます。画像を生成したら、Worksheet.PageSetup.LeftHeaderImage と Worksheet.PageSetup.LeftHeader プロパティを使用して、画像をワークシートのヘッダーのセクションに追加できます。詳細な手順は次のとおりです。
using Spire.Xls;
using System.Drawing;
namespace AddWatermark
{
class Program
{
static void Main(string[] args)
{
//Workbookクラスのインスタンスを初期化し、Excelファイルをロードする
Workbook workbook = new Workbook();
workbook.LoadFromFile(@"Sample.xlsx");
//フォントを作成する
Font font = new Font("Arial", 40);
//テキストを定義する
string watermark = "機密";
//ファイル内のすべてのシートをループする
foreach (Worksheet sheet in workbook.Worksheets)
{
//DrawWatermarkImage()メソッドを使用して、テキストに基づいて画像を作成する
Image imgWtrmrk = DrawWatermarkImage(watermark, font, Color.LightCoral, Color.White, sheet.PageSetup.PageHeight, sheet.PageSetup.PageWidth);
//各シートの左ヘッダーのセクションに画像を追加する
sheet.PageSetup.LeftHeaderImage = imgWtrmrk;
sheet.PageSetup.LeftHeader = "&G";
//シートのビューモードを透かしを見るためのページレイアウトに変更する
sheet.ViewMode = ViewMode.Layout;
}
///結果ファイルを保存する
workbook.SaveToFile("AddWatermark.xlsx", ExcelVersion.Version2013);
}
private static Image DrawWatermarkImage(string text, Font font, Color textColor, Color backColor, double height, double width)
{
//指定した幅と高さの画像を作成する
Image img = new Bitmap((int)width, (int)height);
//画像からグラフィックのオブジェクトを作成する
Graphics drawing = Graphics.FromImage(img);
//テキストのサイズを取得する
SizeF textSize = drawing.MeasureString(text, font);
//指定されたトランスレーションをグラフィックの変換マトリックスに前置きして座標系の原点を変更する
drawing.TranslateTransform(((int)width - textSize.Width) / 2, ((int)height - textSize.Height) / 2);
//ローテーションを適用する
drawing.RotateTransform(-45);
//指定されたトランスレーションをグラフィックの変換マトリックスに前置きして座標系の原点を変更する
drawing.TranslateTransform(-((int)width - textSize.Width) / 2, -((int)height - textSize.Height) / 2);
//背景をペイントする
drawing.Clear(backColor);
//テキストのブラシを作成する
Brush textBrush = new SolidBrush(textColor);
//グラフィックの中心にテキストを描画する
drawing.DrawString(text, font, textBrush, ((int)width - textSize.Width) / 2, ((int)height - textSize.Height) / 2);
drawing.Save();
return img;
}
}
}
Imports Spire.Xls
Imports System.Drawing
Namespace AddWatermark
Friend Class Program
Private Shared Sub Main(ByVal args As String())
'Workbookクラスのインスタンスを初期化し、Excelファイルをロードする
Dim workbook As Workbook = New Workbook()
workbook.LoadFromFile("Sample.xlsx")
'フォントを作成する
Dim font As Font = New Font("Arial", 40)
'テキストを定義する
Dim watermark = "機密"
'ファイル内のすべてのシートをループする
For Each sheet As Worksheet In workbook.Worksheets
'DrawWatermarkImage()メソッドを呼び出してテキストに基づいて画像を作成する
Dim imgWtrmrk As Image = DrawWatermarkImage(watermark, font, Color.LightCoral, Color.White, sheet.PageSetup.PageHeight, sheet.PageSetup.PageWidth)
'各シートの左ヘッダーのセクションに画像を追加する
sheet.PageSetup.LeftHeaderImage = imgWtrmrk
sheet.PageSetup.LeftHeader = "&G"
'シートのビューモードを透かしを見るためのページレイアウトに変更する
sheet.ViewMode = ViewMode.Layout
Next
'結果ファイルを保存する
workbook.SaveToFile("AddWatermark.xlsx", ExcelVersion.Version2013)
End Sub
Private Shared Function DrawWatermarkImage(ByVal text As String, ByVal font As Font, ByVal textColor As Color, ByVal backColor As Color, ByVal height As Double, ByVal width As Double) As Image
'指定した幅と高さの画像を作成する
Dim img As Image = New Bitmap(width, height)
'画像からグラフィックのオブジェクトを作成する
Dim drawing As Graphics = Graphics.FromImage(img)
'テキストのサイズを取得する
Dim textSize As SizeF = drawing.MeasureString(text, font)
'指定されたトランスレーションをグラフィックの変換マトリックスに前置きして座標系の原点を変更する
drawing.TranslateTransform((CInt(width) - textSize.Width) / 2, (CInt(height) - textSize.Height) / 2)
'ローテーションを適用する
drawing.RotateTransform(-45)
'指定されたトランスレーションをグラフィックの変換マトリックスに前置きして座標系の原点を変更する
drawing.TranslateTransform(-(CInt(width) - textSize.Width) / 2, -(CInt(height) - textSize.Height) / 2)
'背景をペイントする
drawing.Clear(backColor)
'テキストのブラシを作成する
Dim textBrush As Brush = New SolidBrush(textColor)
'グラフィックの中心にテキストを描画する
drawing.DrawString(text, font, textBrush, (CInt(width) - textSize.Width) / 2, (CInt(height) - textSize.Height) / 2)
drawing.Save()
Return img
End Function
End Class
End Namespace
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。