チュートリアル
簡単にライブラリーを使用するためのチュートリアルコレクション
Excel を HTML に変換すると、スプレッドシートのデータをサイトに簡単に埋め込むことができ、また、他の人が Excel を開かずにブラウザで表をオンラインで見ることができるようになります。今回は、Spire.XLS for C++ を使用して Excel を HTML に変換する方法を紹介します。
Spire.XLS for C++ をアプリケーションに組み込むには、2つの方法があります。一つは NuGet 経由でインストールする方法、もう一つは当社のウェブサイトからパッケージをダウンロードし、ライブラリをプログラムにコピーする方法です。NuGet 経由のインストールの方が便利で、より推奨されます。詳しくは、以下のリンクからご覧いただけます。
Spire.XLS for C++ を C++ アプリケーションに統合する方法
Spire.XLS for C++ が提供する Workbook->SaveToHtml() メソッドを使用すると、ワークブック全体を HTML に変換することができます。以下、詳しい手順を説明します。
#include "Spire.Xls.o.h";
using namespace Spire::Xls;
int main() {
//Workbookのオブジェクトを作成する
Workbook* workbook = new Workbook();
//Excelファイルを読み込む
workbook->LoadFromFile(L"C:/売上請求書追跡.xlsx");
//Excelワークブック全体をHtmlに保存する
workbook->SaveToHtml(L"ExcelからHTMLへの変換.html");
workbook->Dispose();
}
ワークシート内の画像を HTML コードに埋め込みながら変換したい場合は、HTMLOptions->SetImageEmbedded() メソッドのパラメータを true に設定することで可能です。以下、詳しい手順を説明します。
#include "Spire.Xls.o.h";
using namespace Spire::Xls;
int main() {
//Workbookのオブジェクトを作成する
Workbook* workbook = new Workbook();
//Excelファイルを読み込む
workbook->LoadFromFile(L"C:/売上請求書追跡.xlsx");
//最初のワークシートを取得する
Worksheet* sheet = workbook->GetWorksheets()->Get(0);
//埋め込み画像をtrueに設定する
HTMLOptions* options = new HTMLOptions();
options->SetImageEmbedded(true);
//ワークシートをHTMLに保存する
sheet->SaveToHtml(L"ExcelからHTMLへの変換.html", options);
workbook->Dispose();
}
Spire.XLS for C++ では、Worksheet->SaveToHtml(Stream* stream, HTMLOptions* saveOption) メソッドを使用して、ワークシートを HTML ストリームに変換することもできます。以下、詳しい手順を説明します。
#include "Spire.Xls.o.h";
using namespace Spire::Xls;
int main() {
//Workbookのオブジェクトを作成する
Workbook* workbook = new Workbook();
//Excelファイルを読み込む
workbook->LoadFromFile(L"C:/売上請求書追跡.xlsx");
//最初のワークシートを取得する
Worksheet* sheet = workbook->GetWorksheets()->Get(0);
//埋め込み画像をtrueに設定する
HTMLOptions* options = new HTMLOptions();
options->SetImageEmbedded(true);
//ストリームを作成する
Stream* stream = new Stream();
//ワークシートをhtmlストリームに保存する
sheet->SaveToHtml(stream, options);
workbook->Dispose();
stream->Save(L"Output/ストリーム.html");
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Word ドキュメントを扱う際、新しいドキュメントを作成するためやその他の目的で、ドキュメントからテキストや画像を抽出する必要があることがよくあります。 テキストをコピーしたり、画像を保存したりする作業をひとつひとつ手作業で行うと、非常に時間がかかり、ミスや漏れが発生しやすくなります。 この記事では、Spire.Doc for C++ を使って、プログラム的に Word ドキュメントからテキストや画像を素早く抽出する方法について説明します。
Spire.Doc for C++ をアプリケーションに組み込むには、2つの方法があります。一つは NuGet 経由でインストールする方法、もう一つは当社のウェブサイトからパッケージをダウンロードし、ライブラリをプログラムにコピーする方法です。NuGet 経由のインストールの方が便利で、より推奨されます。詳しくは、以下のリンクからご覧いただけます。
Spire.Doc for C++ を C++ アプリケーションに統合する方法
Spire.Doc for C++ の Document->GetText() メソッドは、Word ドキュメント内の全てのテキストを取得することができます。 ここでは、Word ドキュメントからテキストを抽出し、TXT ファイルとして保存する方法を詳しく説明します。
#include "Spire.Doc.o.h"
#include <iostream>
#include <locale>
#include <codecvt>
using namespace Spire::Doc;
using namespace std;
int main()
{
//Documentのオブジェクトを作成する
Document* document = new Document();
//Wordドキュメントを読み込む
document->LoadFromFile(L"C:/宇宙からの視点.docx");
//ドキュメントのテキストを取得する
wstring text = document->GetText();
//TXTファイルを作成し、抽出したテキストを書き込む
wofstream write(L"Output/テキストの抽出.txt");
auto LocUtf8 = locale(locale(""), new std::codecvt_utf8<wchar_t>);
write.imbue(LocUtf8);
write << text;
write.close();
document->Close();
delete document;
}
Word ドキュメントの画像を抽出するには、ドキュメントの各サブオブジェクトが画像であるかどうかを判断し、DocPicture->GetImage() を使用して画像を抽出する必要があります。 以下はその詳細な手順です。
#include "Spire.Doc.o.h"
#include <deque>
using namespace Spire::Doc;
int main() {
//Documentのオブジェクトを作成する
Document* document = new Document();
//Wordドキュメントを読み込む
document->LoadFromFile(L"C:/宇宙からの視点.docx");
//dequeキューの末尾にドキュメントを追加する
std::deque<ICompositeObject*> nodes;
nodes.push_back(document);
//ベクターグラフィックのリストを作成する
std::vector<Image*> images;
//ドキュメントのすべての子オブジェクトをループする
while (nodes.size() > 0)
{
ICompositeObject* node = nodes.front();
nodes.pop_front();
for (int i = 0; i < node->GetChildObjects()->GetCount(); i++)
{
IDocumentObject* child = node->GetChildObjects()->GetItem(i);
//すべての画像を取得し、リストに追加する
if (child->GetDocumentObjectType() == DocumentObjectType::Picture)
{
DocPicture* picture = dynamic_cast<DocPicture*>(child);
images.push_back(picture->GetImage());
}
else if (dynamic_cast<ICompositeObject*>(child) != nullptr)
{
nodes.push_back(dynamic_cast<ICompositeObject*>(child));
}
}
}
//指定したパスに画像を保存する
for (int i = 0; i < images.size(); i++)
{
std::wstring fileName = L"画像-" + std::to_wstring(i) + L".png";
images[i]->Save((L"Output/画像/" + fileName).c_str(), ImageFormat::GetPng());
}
document->Close();
delete document;
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Spire.Office for Java 8.3.6のリリースを発表できることをうれしく思います。このリリースでは、Spire.PDF for JavaはPDFの印刷スケーリング機能をサポートしています。Spire.Doc for Javaは改訂された時間を変更する機能を追加しました。Spire.XLS for JavaはExcelを独立したHTMLファイルに変換することや、セル内の一部のテキストを置換する機能をサポートしています。Spire.Presentation for Java はDPTおよびDPSファイル形式をサポートしています。さらに、多くの既知のバグが正常に修正されました。詳細は以下の内容を読んでください。
カテゴリー | ID | 説明 |
New feature | SPIREDOC-8859 | 改訂された時間を変更する機能が追加されました。
SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); String dateString = "2023/3/1 00:00:00"; Date date = formatter.parse(dateString); revison.setDateTime(date); |
Bug | SPIREDOC-8645 | WordをPDFに変換した後、表の内容が正しくない問題が修正されました。 |
Bug | SPIREDOC-8960 | WordをPDFに変換すると、空白が多くなる問題が修正されました。 |
Bug | SPIREDOC-8855 | WordをPDFに変換すると、SmartArt内のテキストが不完全に表示される問題が修正されました。 |
Bug | SPIREDOC-8866 | WordをPDFに変換した後、SmartArtが失われていた問題が修正されました。 |
Bug | SPIREDOC-8928 | 固定された列と幅を設定すると、表が乱れる問題が修正されました。 |
Bug | SPIREDOC-8975 | 取得したドキュメントのページ数が正しくない問題が修正されました。 |
Bug | SPIREDOC-8978 | カタログの更新後にカタログスタイルが変更された問題が修正されました。 |
Bug | SPIREDOC-9036 | WordをPDFに変換する際にアプリケーションが「NullPointerException」をスローする問題が修正されました。 |
Bug | SPIREDOC-9037 | 新しいドキュメントとして保存した後、MS Wordで結果ドキュメントを開いたときにエラーがスローする問題が修正されました。 |
Bug | SPIREDOC-9056 | 繰り返し設定ProtectionType.Allow_Only_Revisions後、ドキュメントが編集できない問題が修正されました。 |
Bug | SPIREDOC-9085 | 新しいドキュメントとして保存した後、MS Wordで結果ドキュメントを開く際に改行が一致しなかった問題が修正されました。 |
Bug | SPIREDOC-9086 | RTFをPDFに変換すると改行スタイルが失われる問題が修正されました。 |
Bug | SPIREDOC-9110 | セクションをコピーした後、ドキュメントのフォーマットが元のドキュメントと一致しない問題が修正されました。 |
Bug | SPIREDOC-9138 | RTFをWordに変換した後、内容が一致しなかった問題が修正されました。 |
カテゴリー | ID | 説明 |
New feature | SPIREPDF-5796 | PDF印刷時のメモリ消費を最適化しました。 |
New feature | SPIREPDF-5833 | PDFの印刷スケーリング機能をサポートしました。
pdfDocument.getPrintSettings().selectSinglePageLayout (PdfSinglePageScalingMode.Custom_Sacle, true, customScaling); |
Bug | SPIREPDF-5536 | 表の内容を抽出する際にアプリケーションが「java.lang.NullPointerException」をスローする問題が修正されました。 |
Bug | SPIREPDF-5558 | CSVに表を抽出する時、一部の文字間のスペースが失われる問題を修正しました。 |
Bug | SPIREPDF-5750 | 文書をロードまたは再保存した後、印章が消える問題を修正しました。 |
Bug | SPIREPDF-5762 | 暗号化されたPDF文書を保存するときに、アプリケーションが「NullPointerException」をスローする問題を修正しました。 |
Bug | SPIREPDF-5803 | PDFフォームを平坦化した後、チェックボックスの位置が変わる問題を修正しました。 |
Bug | SPIREPDF-5822 | Squareタイプの注釈の透明度を設定できない問題を修正しました。 |
Bug | SPIREPDF-5827 | ライセンスを適用した後にPDFをPDFA1Bに変換する際、アプリケーションが「OutOfMemoryError」をスローする問題を修正しました。 |
Bug | SPIREPDF-5834 | イタリア語環境下でPDFをPDFA3Aに変換するときに、アプリケーションが「Invalid date string」をスローする問題を修正しました。 |
カテゴリー | ID | 説明 |
New feature | SPIREXLS-3537 | Excelを独立したHTMLファイルに変換することができます。
Workbook wb = new Workbook(); wb.loadFromFile("data/mytest.xlsx"); HTMLOptions.Default.isStandAloneHtmlFile(true); wb.saveToFile("result.html", FileFormat.HTML); |
New feature | SPIREXLS-3791 | Excel全体をHTMLストリームに保存することができます。
Workbook wb = new Workbook(); wb.loadFromFile("data/mytest.xlsx"); FileOutputStream fileStream = new FileOutputStream("output/saveStream_result.html"); wb.saveToStream(fileStream, FileFormat.HTML); fileStream.close(); |
New feature | SPIREXLS-4385 | ピボットテーブルのピボットフィールドとデータフィールドに条件付き書式を追加することができます。
PivotTable table = (PivotTable)worksheet.getPivotTables().get(0); PivotConditionalFormatCollection pcfs = table.getPivotConditionalFormats(); PivotConditionalFormat pc = pcfs.addPivotConditionalFormat(table.getColumnFields().get(0)); //PivotConditionalFormat pc = pcfs.addPivotConditionalFormat(table.getRowFields().get(0)); //PivotConditionalFormat pc = pcfs.addPivotConditionalFormat(table.getDataFields().get(0)); //PivotConditionalFormat pc = pcfs.addPivotConditionalFormat(table.getPageFields().get(0)); IConditionalFormat cf = pc.addCondition(); cf.setFormatType(ConditionalFormatType.ContainsBlanks); cf.setFillPattern(ExcelPatternType.Solid); cf.setBackColor(Color.Red); |
New feature | SPIREXLS-4513 | セル内の一部のテキストを置換する機能がサポートされています。
sheet.getCellList().get(0).textPartReplace("Office", "Spire"); |
Bug | SPIREXLS-4489 | グラフを画像に変換する際にガイド線が失われていた問題が修正されました。 |
Bug | SPIREXLS-4490 | Excelを画像に変換する際にデータ位置が一部下に移動していた問題が修正されました。 |
Bug | SPIREXLS-4508 | Excelを画像に変換する際に二重下線が一重下線になる問題が修正されました。 |
Bug | SPIREXLS-4510 | Excelにフッターを追加すると、アプリケーションが「java.lang.NullPointerException」をスローする問題が修正されました。 |
Bug | SPIREXLS-4511 | ExcelをPDFに変換すると、アプリケーションが「Invalid sectionId of Header Footer image」をスローする問題が修正されました。 |
Bug | SPIREXLS-4514 | Excelを画像に変換する際にプログレスバーのカラーが失われていた問題が修正されました。 |
Bug | SPIREXLS-4537 | グラフを画像に変換する際のX軸データのずれの問題が修正されました。 |
Bug | SPIREXLS-4547 | ExcelをPDFに変換したときのドキュメントの内容が正しくない問題が修正されました。 |
カテゴリー | ID | 説明 |
New feature | SPIREPPT-2203 | DPTおよびDPSファイル形式をサポートしています。
Presentation presentation = new Presentation(); presentation.loadFromFile("sample.dps", FileFormat.DPS); presentation.saveToFile("result.dpt", FileFormat.DPT); |
Bug | SPIREPPT-2204 | ストリームとしてドキュメントをロードするときに例外をスローする動作を最適化しました。 |
Bug | SPIREPPT-2132 | HTMLをPPTに変換する際に、フォントが間違っている問題が修正されました。 |
Bug | SPIREPPT-2171 | PPTドキュメントをロードする際にアプリケーションが「Unknown file format」をスローする問題が修正されました。 |
Bug | SPIREPPT-2206 | PPTを画像に変換する際に、棒グラフの色が正しくない問題が修正されました。 |
Bug | SPIREPPT-2207 | ppt.getBytes()メソッドを実行すると、アプリケーションが例外をスローする問題が修正されました。 |
PDF 形式は多くの場合に適していますが、画像に変換する必要がある場合もあります。PDF を画像に変換することで、ソーシャルメディアに公開したり、画像表示しかできないデバイスにアップロード・転送することができます。また、Word ドキュメントや PowerPoint プレゼンテーションにも埋め込むことが可能です。この記事では、Spire.PDF for C++ を使用して C++ で PDF を画像に変換する方法について説明します。
Spire.PDF for C++ をアプリケーションに組み込むには、2つの方法があります。一つは NuGet 経由でインストールする方法、もう一つは当社のウェブサイトからパッケージをダウンロードし、ライブラリをプログラムにコピーする方法です。NuGet 経由のインストールの方が便利で、より推奨されます。詳しくは、以下のリンクからご覧いただけます。
Spire.PDF for C++ を C++ アプリケーションに統合する方法
Spire.PDF for C++ の PdfDocument->SaveAsImage(int pageIndex) メソッドは特定のページを画像ストリームに変換することをサポートします。ストリームは、PNG、JPG、BMP などの目的の拡張子を持つ画像ファイルとして保存できます。詳細な手順は次のとおりです。
#include "Spire.Pdf.o.h";
using namespace Spire::Pdf;
using namespace std;
int main() {
//入力と出力のパスを指定する
wstring inputFile = L"C:\\Users\\Administrator\\Desktop\\sample.pdf";
wstring outputFile = L"C:\\Users\\Administrator\\Desktop\\Output\\ToImage";
//PdfDocumentオブジェクトを作成する
PdfDocument* doc = new PdfDocument();
//PDFファイルをロードする
doc->LoadFromFile(inputFile.c_str());
//特定のページを画像に変換する
Stream* image = doc->SaveAsImage(0, PdfImageType::Bitmap);
//画像を.jpgファイルに書き込む
wstring fileName = outputFile + L".jpg";
image->Save(fileName.c_str());
doc->Close();
delete doc;
}
PDF 全体を個別の画像として保存するには、変換部分をループ文に入れるだけです。以下に詳細な手順を示します。
#include "Spire.Pdf.o.h";
using namespace Spire::Pdf;
using namespace std;
int main() {
//入力と出力のパスを指定する
wstring inputFile = L"C:\\Users\\Administrator\\Desktop\\sample.pdf";
wstring outputFile = L"C:\\Users\\Administrator\\Desktop\\Output\\ToImg-";
//PdfDocumentオブジェクトを作成する
PdfDocument* doc = new PdfDocument();
//PDFファイルをロードする
doc->LoadFromFile(inputFile.c_str());
//ファイルのページをループする
for (int i = 0; i < doc->GetPages()->GetCount(); i++) {
//特定のページを画像として保存
Stream* image = doc->SaveAsImage(i);
//画像を.jpgファイルに書き込む
wstring fileName = outputFile + to_wstring(i) + L".jpg";
image->Save(fileName.c_str());
}
doc->Close();
delete doc;
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Spire.Doc for Java 11.3.11のリリースを発表できることを嬉しく思います。このバージョンでは、改訂された時間を変更する機能が追加されました。WordからPDFへの変換機能が強化されました。また、取得したドキュメントのページ数が正しくないなど、既知の問題も修正れました。詳細は以下の内容を読んでください。
カテゴリー | ID | 説明 |
New feature | SPIREDOC-8859 | 改訂された時間を変更する機能が追加されました。
SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); String dateString = "2023/3/1 00:00:00"; Date date = formatter.parse(dateString); revison.setDateTime(date); |
Bug | SPIREDOC-8645 | WordをPDFに変換した後、表の内容が正しくない問題が修正されました。 |
Bug | SPIREDOC-8960 | WordをPDFに変換すると、空白が多くなる問題が修正されました。 |
Bug | SPIREDOC-8855 | WordをPDFに変換すると、SmartArt内のテキストが不完全に表示される問題が修正されました。 |
Bug | SPIREDOC-8866 | WordをPDFに変換した後、SmartArtが失われていた問題が修正されました。 |
Bug | SPIREDOC-8928 | 固定された列と幅を設定すると、表が乱れる問題が修正されました。 |
Bug | SPIREDOC-8975 | 取得したドキュメントのページ数が正しくない問題が修正されました。 |
Bug | SPIREDOC-8978 | カタログの更新後にカタログスタイルが変更された問題が修正されました。 |
Bug | SPIREDOC-9036 | WordをPDFに変換する際にアプリケーションが「NullPointerException」をスローする問題が修正されました。 |
Bug | SPIREDOC-9037 | 新しいドキュメントとして保存した後、MS Wordで結果ドキュメントを開いたときにエラーがスローする問題が修正されました。 |
Bug | SPIREDOC-9056 | 繰り返し設定ProtectionType.Allow_Only_Revisions後、ドキュメントが編集できない問題が修正されました。 |
Bug | SPIREDOC-9085 | 新しいドキュメントとして保存した後、MS Wordで結果ドキュメントを開く際に改行が一致しなかった問題が修正されました。 |
Bug | SPIREDOC-9086 | RTFをPDFに変換すると改行スタイルが失われる問題が修正されました。 |
Bug | SPIREDOC-9110 | セクションをコピーした後、ドキュメントのフォーマットが元のドキュメントと一致しない問題が修正されました。 |
Bug | SPIREDOC-9138 | RTFをWordに変換した後、内容が一致しなかった問題が修正されました。 |
Spire.Presentation for Java 8.3.2のリリースを発表できることをうれしく思います。このバージョンは、DPTおよびDPSファイル形式をサポートしています。今回の更新では、HTMLからPPT、PPTから画像への変換機能も強化されました。また、PPTドキュメントをロードする際にアプリケーションが「Unknown file format」をスローするなど、既知の問題も修正されました。詳細は以下の内容を読んでください。
カテゴリー | ID | 説明 |
New feature | SPIREPPT-2203 | DPTおよびDPSファイル形式をサポートしています。
Presentation presentation = new Presentation(); presentation.loadFromFile("sample.dps", FileFormat.DPS); presentation.saveToFile("result.dpt", FileFormat.DPT); |
Bug | SPIREPPT-2204 | ストリームとしてドキュメントをロードするときに例外をスローする動作を最適化しました。 |
Bug | SPIREPPT-2132 | HTMLをPPTに変換する際に、フォントが間違っている問題が修正されました。 |
Bug | SPIREPPT-2171 | PPTドキュメントをロードする際にアプリケーションが「Unknown file format」をスローする問題が修正されました。 |
Bug | SPIREPPT-2206 | PPTを画像に変換する際に、棒グラフの色が正しくない問題が修正されました。 |
Bug | SPIREPPT-2207 | ppt.getBytes()メソッドを実行すると、アプリケーションが例外をスローする問題が修正されました。 |
Excel のスプレッドシートは、データを整理し計算するために使用されるグリッドベースの拡張可能なファイルです。人々はビジネスや個人の必要に応じてスプレッドシートを作成することがよくあります。Excel のスプレッドシートにデータを書き込むためには、プログラミング手法を使用することをお勧めします。これにより時間を節約でき、誤りを避けることができます。この記事では、Spire.XLS for .NET を使用して、C# および VB.NET でプログラムによって Excel 文書を作成し、Excel のシートにデータを書き込む方法を紹介します。
まず、Spire.XLS for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.XLS
ワークシート内の特定のセルには、Worksheet.Range[int row, int column] プロパティでアクセスできます。次に、XlsRange.Value または XlsRange.Value2 プロパティを使用して、テキスト値または数値をセルに追加できます。詳細な手順は次のとおりです。
using Spire.Xls;
namespace WriteDataToCells
{
class Program
{
static void Main(string[] args)
{
//Workbookオブジェクトを作成する
Workbook workbook = new Workbook();
//最初のシートを取得する
Worksheet worksheet = workbook.Worksheets[0];
//指定したセルにデータを書き込む
worksheet.Range[1, 1].Value = "名前";
worksheet.Range[1, 2].Value = "年齢";
worksheet.Range[1, 3].Value = "部門";
worksheet.Range[1, 4].Value = "雇用日";
worksheet.Range[2, 1].Value = "中村";
worksheet.Range[2, 2].Value2 = 29;
worksheet.Range[2, 3].Value = "研究部門";
worksheet.Range[2, 4].Value = "2019-07-01";
worksheet.Range[3, 1].Value = "田中";
worksheet.Range[3, 2].Value2 = 31;
worksheet.Range[3, 3].Value = "生産部門";
worksheet.Range[3, 4].Value = "2015-04-27";
//列幅を自動調整する
worksheet.AllocatedRange.AutoFitColumns();
//最初の行にスタイルを適用する
CellStyle style = workbook.Styles.Add("newStyle");
style.Font.IsBold = true;
worksheet.Range[1, 1, 1, 4].Style = style;
//ファイルに保存する
workbook.SaveToFile("WriteToCells.xlsx", ExcelVersion.Version2016);
}
}
}
Imports Spire.Xls
Namespace WriteDataToCells
Class Program
Shared Sub Main(ByVal args() As String)
'Workbookオブジェクトを作成する
Dim workbook As Workbook = New Workbook()
'最初のシートを取得する
Dim worksheet As Worksheet = workbook.Worksheets(0)
'指定したセルにデータを書き込む
worksheet.Range(1, 1).Value = "名前"
worksheet.Range(1, 2).Value = "年齢"
worksheet.Range(1, 3).Value = "部門"
worksheet.Range(1, 4).Value = "雇用日"
worksheet.Range(2, 1).Value = "中村"
worksheet.Range(2, 2).Value2 = 29
worksheet.Range(2, 3).Value = "研究部門"
worksheet.Range(2, 4).Value = "2019-07-01"
worksheet.Range(3, 1).Value = "田中"
worksheet.Range(3, 2).Value2 = 31
worksheet.Range(3, 3).Value = "生産部門"
worksheet.Range(3, 4).Value = "2015-04-27"
'列幅を自動調整する
worksheet.AllocatedRange.AutoFitColumns()
'最初の行にスタイルを適用する
Dim style As CellStyle = workbook.Styles.Add("newStyle")
style.Font.IsBold = True
worksheet.Range(1, 1, 1, 4).Style = style
'ファイルに保存する
workbook.SaveToFile("WriteToCells.xlsx", ExcelVersion.Version2016)
End Sub
End Class
End Namespace
Spire.XLS for .NET には Worksheet.InsertArrary() メソッドが用意されており、プログラマはワークシートの指定されたセル範囲に1次元配列または2次元配列を書き込むことができます。ワークシートに配列を書き込む手順は次のとおりです。
using Spire.Xls;
namespace WriteArraysToWorksheet
{
class Program
{
static void Main(string[] args)
{
//Workbookオブジェクトを作成する
Workbook workbook = new Workbook();
//最初のシートを取得する
Worksheet worksheet = workbook.Worksheets[0];
//1次元配列を作成する
string[] oneDimensionalArray = new string[] { "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日" };
//シートの最初の行に配列を書き込む
worksheet.InsertArray(oneDimensionalArray, 1, 1, false);
//2次元配列を作成する
string[,] twoDimensionalArray = new string[,]{
{"名前", "年齢", "性別", "部門", "電話番号"},
{"中村", "25", "男性", "研究部門","654214"},
{"田中", "24", "女性", "生産部門","624847"},
{"小林", "26", "女性", "営業部門","624758"}
};
//セルA 3からシートに配列を書き込む
worksheet.InsertArray(twoDimensionalArray, 3, 1);
//特定のセル範囲の列幅を自動的に調整する
worksheet.AllocatedRange.AutoFitColumns();
//1行目と3行目にスタイルを適用する
CellStyle style = workbook.Styles.Add("newStyle");
style.Font.IsBold = true;
worksheet.Range[1, 1, 1, 6].Style = style;
worksheet.Range[3, 1, 3, 6].Style = style;
//ファイルに保存する
workbook.SaveToFile("InsertArrays.xlsx", ExcelVersion.Version2016);
}
}
}
Imports Spire.Xls
Namespace WriteArraysToWorksheet
Class Program
Shared Sub Main(ByVal args() As String)
'Workbookオブジェクトを作成する
Dim workbook As Workbook = New Workbook()
'最初のシートを取得する
Dim worksheet As Worksheet = workbook.Worksheets(0)
'1次元配列を作成する
Dim oneDimensionalArray() As String = New String() { "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"}
'シートの最初の行に配列を書き込む
worksheet.InsertArray(oneDimensionalArray, 1, 1, False)
'2次元配列を作成する
Dim twoDimensionalArray(,) As String = New String(,) {
{"名前", "年齢", "性別", "部門", "電話番号"},
{"中村", "25", "男性", "研究部門","654214"},
{"田中", "24", "女性", "生産部門","624847"},
{"小林", "26", "女性", "営業部門","624758" }
}
'セルA 3からシートに配列を書き込む
worksheet.InsertArray(twoDimensionalArray, 3, 1)
'特定のセル範囲の列幅を自動的に調整する
worksheet.AllocatedRange.AutoFitColumns()
'1行目と3行目にスタイルを適用する
Dim style As CellStyle = workbook.Styles.Add("newStyle")
style.Font.IsBold = True
worksheet.Range(1, 1, 1, 6).Style = style
worksheet.Range(3, 1, 3, 6).Style = style
'ファイルに保存する
workbook.SaveToFile("InsertArrays.xlsx", ExcelVersion.Version2016)
End Sub
End Class
End Namespace
DataTable からシートにデータをインポートするには、Worksheet.InsertDataTable() メソッドを使用します。詳細な手順は次のとおりです。
using System;
using System.Data;
using Spire.Xls;
namespace WriteDataTableToWorksheet
{
class Program
{
static void Main(string[] args)
{
//Workbookオブジェクトを作成する
Workbook workbook = new Workbook();
//最初のシートを取得する
Worksheet worksheet = workbook.Worksheets[0];
//DataTableオブジェクトを作成する
DataTable dataTable = new DataTable();
dataTable.Columns.Add("スキュー", typeof(Int32));
dataTable.Columns.Add("製品", typeof(String));
dataTable.Columns.Add("価格", typeof(String));
//行を作成してデータを追加する
DataRow dr = dataTable.NewRow();
dr[0] = 512900512;
dr[1] = "ワイヤレスマウス";
dr[2] = "$85";
dataTable.Rows.Add(dr);
dr = dataTable.NewRow();
dr[0] = 512900637;
dr[1] = "キーボード";
dr[2] = "$99";
dataTable.Rows.Add(dr);
dr = dataTable.NewRow();
dr[0] = 512901829;
dr[1] = "Bluetoothスピーカー";
dr[2] = "$125";
dataTable.Rows.Add(dr);
dr = dataTable.NewRow();
dr[0] = 512900386;
dr[1] = "USBメモリ";
dr[2] = "$89";
dataTable.Rows.Add(dr);
//シートにデータテーブルを書き込む
worksheet.InsertDataTable(dataTable, true, 1, 1, true);
//特定のセル範囲の列幅を自動的に調整する
worksheet.AllocatedRange.AutoFitColumns();
//1行目と3行目にスタイルを適用する
CellStyle style = workbook.Styles.Add("newStyle");
style.Font.IsBold = true;
worksheet.Range[1, 1, 1, 3].Style = style;
//ファイルに保存する
workbook.SaveToFile("InsertDataTable.xlsx", ExcelVersion.Version2016);
}
}
}
Imports System
Imports System.Data
Imports Spire.Xls
Namespace WriteDataTableToWorksheet
Class Program
Shared Sub Main(ByVal args() As String)
'Workbookオブジェクトを作成する
Dim workbook As Workbook = New Workbook()
'最初のシートを取得する
Dim worksheet As Worksheet = workbook.Worksheets(0)
'DataTableオブジェクトを作成する
Dim dataTable As DataTable = New DataTable()
dataTable.Columns.Add("スキュー", Type.GetType(Int32))
dataTable.Columns.Add("製品", Type.GetType(String))
dataTable.Columns.Add("価格", Type.GetType(String))
'行を作成してデータを追加する
Dim dr As DataRow = dataTable.NewRow()
dr(0) = 512900512
dr(1) = "ワイヤレスマウス"
dr(2) = "$85"
dataTable.Rows.Add(dr)
dr = dataTable.NewRow()
dr(0) = 512900637
dr(1) = "キーボード"
dr(2) = "$99"
dataTable.Rows.Add(dr)
dr = dataTable.NewRow()
dr(0) = 512901829
dr(1) = "Bluetoothスピーカー"
dr(2) = "$125"
dataTable.Rows.Add(dr)
dr = dataTable.NewRow()
dr(0) = 512900386
dr(1) = "USBメモリ"
dr(2) = "$89"
dataTable.Rows.Add(dr)
'シートにデータテーブルを書き込む
worksheet.InsertDataTable(dataTable, True, 1, 1, True)
'特定のセル範囲の列幅を自動的に調整する
worksheet.AllocatedRange.AutoFitColumns()
'1行目と3行目にスタイルを適用する
Dim style As CellStyle = workbook.Styles.Add("newStyle")
style.Font.IsBold = True
worksheet.Range(1, 1, 1, 3).Style = style
'ファイルに保存する
workbook.SaveToFile("InsertDataTable.xlsx", ExcelVersion.Version2016)
End Sub
End Class
End Namespace
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Spire.XLS for Java 13.3.6のリリースを発表できることを嬉しく思います。このバージョンでは、Excelを独立したHTMLファイルに変換することや、Excel全体をHTMLストリームに保存することができます。また、ピボットテーブルのピボットフィールドとデータフィールドに条件付き書式を追加することができます。セル内の一部のテキストを置換する機能もサポートされています。さらに、ExcelからPDFと画像への変換機能も強化されています。また、グラフを画像に変換する際のガイド線が失われる問題など、既知の問題も修正されました。詳細は以下をお読みください。
カテゴリー | ID | 説明 |
New feature | SPIREXLS-3537 | Excelを独立したHTMLファイルに変換することができます。
Workbook wb = new Workbook(); wb.loadFromFile("data/mytest.xlsx"); HTMLOptions.Default.isStandAloneHtmlFile(true); wb.saveToFile("result.html", FileFormat.HTML); |
New feature | SPIREXLS-3791 | Excel全体をHTMLストリームに保存することができます。
Workbook wb = new Workbook(); wb.loadFromFile("data/mytest.xlsx"); FileOutputStream fileStream = new FileOutputStream("output/saveStream_result.html"); wb.saveToStream(fileStream, FileFormat.HTML); fileStream.close(); |
New feature | SPIREXLS-4385 | ピボットテーブルのピボットフィールドとデータフィールドに条件付き書式を追加することができます。
PivotTable table = (PivotTable)worksheet.getPivotTables().get(0); PivotConditionalFormatCollection pcfs = table.getPivotConditionalFormats(); PivotConditionalFormat pc = pcfs.addPivotConditionalFormat(table.getColumnFields().get(0)); //PivotConditionalFormat pc = pcfs.addPivotConditionalFormat(table.getRowFields().get(0)); //PivotConditionalFormat pc = pcfs.addPivotConditionalFormat(table.getDataFields().get(0)); //PivotConditionalFormat pc = pcfs.addPivotConditionalFormat(table.getPageFields().get(0)); IConditionalFormat cf = pc.addCondition(); cf.setFormatType(ConditionalFormatType.ContainsBlanks); cf.setFillPattern(ExcelPatternType.Solid); cf.setBackColor(Color.Red); |
New feature | SPIREXLS-4513 | セル内の一部のテキストを置換する機能がサポートされています。
sheet.getCellList().get(0).textPartReplace("Office", "Spire"); |
Bug | SPIREXLS-4489 | グラフを画像に変換する際にガイド線が失われていた問題が修正されました。 |
Bug | SPIREXLS-4490 | Excelを画像に変換する際にデータ位置が一部下に移動していた問題が修正されました。 |
Bug | SPIREXLS-4508 | Excelを画像に変換する際に二重下線が一重下線になる問題が修正されました。 |
Bug | SPIREXLS-4510 | Excelにフッターを追加すると、アプリケーションが「java.lang.NullPointerException」をスローする問題が修正されました。 |
Bug | SPIREXLS-4511 | ExcelをPDFに変換すると、アプリケーションが「Invalid sectionId of Header Footer image」をスローする問題が修正されました。 |
Bug | SPIREXLS-4514 | Excelを画像に変換する際にプログレスバーのカラーが失われていた問題が修正されました。 |
Bug | SPIREXLS-4537 | グラフを画像に変換する際のX軸データのずれの問題が修正されました。 |
Bug | SPIREXLS-4547 | ExcelをPDFに変換したときのドキュメントの内容が正しくない問題が修正されました。 |
Excel のスプレッドシートはグリッドベースの文書であり、情報を整理するために有機的な方法で使用されています。人々はビジネスや個人の必要に応じてスプレッドシートを作成することがよくあります。多年にわたり、Excel のスプレッドシートは多くの機能を提供し、煩雑なデータ管理プロセスを簡素化する上で重要な役割を果たしてきました。この記事では、Spire.XLS for C++ を使用して C++ で Excel 文書を作成し、Excel のシートにデータを書き込む方法について説明します。
Spire.XLS for C++ をアプリケーションに組み込むには、2つの方法があります。一つは NuGet 経由でインストールする方法、もう一つは当社のウェブサイトからパッケージをダウンロードし、ライブラリをプログラムにコピーする方法です。NuGet 経由のインストールの方が便利で、より推奨されます。詳しくは、以下のリンクからご覧いただけます。
Spire.XLS for C++ を C++ アプリケーションに統合する方法
Spire.XLS for C++ は、Excel 文書とワークシートをそれぞれ表す Workbook クラスと Worksheet クラスを提供しています。ユーザーは、Worksheet->GetRange(int row, int column) メソッドを使用して特定のセルにアクセスできます。その後、CellRange->SetText() または CellRange->SetNumberValue() メソッドを使用してセルにテキスト値または数値を追加します。以下に詳細な手順が示されています。
#include "Spire.Xls.o.h";
using namespace Spire::Xls;
int main() {
//出力ファイルのパスと名前を指定する
std::wstring outputPath = L"Output\\";
std::wstring outputFile = outputPath + L"WriteIndividualValuesToCells.xlsx";
//Workbookオブジェクトを作成する
Workbook* workbook = new Workbook();
//最初のシートを取得する
Worksheet* sheet = workbook->GetWorksheets()->Get(0);
//指定したセルにテキストと数を書き込む
sheet->GetRange(1, 1)->SetText(L"名前");
sheet->GetRange(1, 2)->SetText(L"年齢");
sheet->GetRange(1, 3)->SetText(L"部門");
sheet->GetRange(1, 4)->SetText(L"雇用日");
sheet->GetRange(1, 1)->SetText(L"名前");
sheet->GetRange(2, 1)->SetText(L"中村");
sheet->GetRange(2, 2)->SetNumberValue(29);
sheet->GetRange(2, 3)->SetText(L"研究部門");
sheet->GetRange(2, 4)->SetText(L"2021-02-26");
sheet->GetRange(3, 1)->SetText(L"田中");
sheet->GetRange(3, 2)->SetNumberValue(27);
sheet->GetRange(3, 3)->SetText(L"生産部門");
sheet->GetRange(3, 4)->SetText(L"2020-07-13");
sheet->GetRange(4, 1)->SetText(L"小林");
sheet->GetRange(4, 2)->SetNumberValue(35);
sheet->GetRange(4, 3)->SetText(L"営業部門");
sheet->GetRange(4, 4)->SetText(L"2019-04-01");
//列幅を自動調整する
sheet->GetAllocatedRange()->AutoFitColumns();
//最初の行にスタイルを適用する
CellStyle* style = workbook->GetStyles()->Add(L"newStyle");
style->GetFont()->SetIsBold(true);
sheet->GetRange(1, 1, 1, 4)->SetStyle(style);
//ファイルに保存する
workbook->SaveToFile(outputFile.c_str(), ExcelVersion::Version2016);
workbook->Dispose();
}
Spire.XLS for C++ は、Worksheet->InsertArray() メソッドを提供し、プログラマーがシートの指定されたセル範囲にコンテナを書き込むことができます。シートに配列を書き込む前に、配列をコンテナに変換する必要があります。以下に詳細な手順が示されています。
#include "Spire.Xls.o.h";
using namespace Spire::Xls;
using namespace std;
int main() {
//出力ファイルのパスと名前を指定する
wstring outputPath = L"Output\\";
wstring outputFile = outputPath + L"WriteArraysToCellRanges.xlsx";
//Workbookオブジェクトを作成する
Workbook* workbook = new Workbook();
//最初のシートを取得する
Worksheet* sheet = workbook->GetWorksheets()->Get(0);
//1次元配列を作成する
wstring oneDimensionalArray[6] = { L"月曜日", L"火曜日", L"水曜日", L"木曜日", L"金曜日", L"土曜日" };
//配列をコンテナに変換する
vector<LPCWSTR> vec;
for (size_t i = 0; i < sizeof(oneDimensionalArray) / sizeof(oneDimensionalArray[0]); i++)
{
vec.push_back(oneDimensionalArray[i].c_str());
}
//シートにコンテナを挿入する
sheet->InsertArray(vec, 1, 1, false);
//2次元配列を作成する
wstring twoDimensionalArray[4][5] = {
{L"名前", L"年齢", L"性別", L"部門", L"電話番号"},
{L"中村", L"25", L"男性", L"研究部門", L"654214"},
{L"田中", L"24", L"女性", L"生産部門", L"624847"},
{L"小林", L"26", L"女性", L"営業部門", L"624758"}
};
//行番号と列番号を取得する
int rowNum = sizeof(twoDimensionalArray) / sizeof(twoDimensionalArray[0]);
int columnNum = sizeof(twoDimensionalArray[0]) / sizeof(twoDimensionalArray[0][0]);
//2 D配列を複数の1 Dコンテナに分割する
for (size_t i = 0; i < rowNum; i++)
{
vector<LPCWSTR> vec_temp;
for (size_t j = 0; j < columnNum; j++)
{
vec_temp.push_back(twoDimensionalArray[i][j].c_str());
}
//シートにコンテナを挿入する
sheet->InsertArray(vec_temp, 4 + i, 1, false);
}
//列幅を自動調整する
sheet->GetAllocatedRange()->AutoFitColumns();
//最初の行にスタイルを適用する
CellStyle* style = workbook->GetStyles()->Add(L"newStyle");
style->GetFont()->SetIsBold(true);
sheet->GetRange(1, 1, 1, 6)->SetStyle(style);
sheet->GetRange(4, 1, 4, 5)->SetStyle(style);
//ファイルに保存する
workbook->SaveToFile(outputFile.c_str(), ExcelVersion::Version2016);
workbook->Dispose();
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Spire.Email 6.3.2のリリースを発表できることを嬉しく思います。このバージョンは、電子メールの日付情報を正しく読み取れない問題を修正しました。詳細は以下の内容を読んでください。
カテゴリー | ID | 説明 |
Bug | SPIREEMAIL-65 | 電子メールの日付情報を正しく読み取れない問題を修正しました。 |