C#を使用してWord文書から画像を抽出する方法

画像とテキストはWord文書で最も一般的な2つの要素です。Microsoft Wordを使用する際、文書内の画像を抽出する場合は、画像で右クリックして「名前を付けて保存」を選択し、画像の名前を編集してから保存すると解決できです。そして今日の記事は、主にC#および無料で使える.NET用のWordコンポーネントSpire.Doc for .NETを使用して、Word文書から画像を抽出する方法をシェアします。

こちらはテキストと画像を含むWordドキュメントです

詳細な手順および使用するコード

ステップ1:引用を追加します。

新しいVisualC#コンソールプロジェクトを作成し、参照を追加して、次の名前空間を使用します。

using System;

using Spire.Doc;

using Spire.Doc.Documents;

using Spire.Doc.Fields;

ステップ2:新しいWordドキュメントオブジェクトを作成し、画像を抽出したい Wordドキュメントをロードします。

Document document = new Document("sample.docx");

ステップ3:ドキュメント内のすべてのセクションをトラバースし、画像を見つけて抽出し、保存します。

int index = 0;

 

foreach (Section section in document.Sections)

{

    foreach (Paragraph paragraph in section.Paragraphs)

    {

        foreach (DocumentObject docObject in paragraph.ChildObjects)

        {

            if (docObject.DocumentObjectType == DocumentObjectType.Picture)

            {

                DocPicture picture = docObject as DocPicture;

 

                String imageName = String.Format(@"images\画像-{0}.png", index);

 

                picture.Image.Save(imageName, System.Drawing.Imaging.ImageFormat.Png);

                index++;

            }

        }

    }

}

完全なるコード

using System;

using Spire.Doc;

using Spire.Doc.Documents;

using Spire.Doc.Fields;

using System.Drawing;

 

namespace Extract_image_from_word

{

    class Program

    {

        static void Main(string[] args)

        {

            Document document = new Document("C:\\Users\\Administrator\\Desktop\\sample.docx");

            int index = 0;

 

            foreach (Section section in document.Sections)

            {

                foreach (Paragraph paragraph in section.Paragraphs)

                {

                    foreach (DocumentObject docObject in paragraph.ChildObjects)

                    {

                        if (docObject.DocumentObjectType == DocumentObjectType.Picture)

                        {

                            DocPicture picture = docObject as DocPicture;

 

                            String imageName = String.Format(@"images\画像-{0}.png", index);

 

                            picture.Image.Save(imageName, System.Drawing.Imaging.ImageFormat.Png);

                            index++;

                        }

                    }

                }

            }

        }

    }

}

抽出された画像は以下のように

 

結語

今回のWord文書から画像を抽出する方法は以上でした、最後まで読んでいただきありがとうございました。

C#を使用してExcelでデータを検索、置換する方法

Excelを使用してデータを処理する場合、ワークシートに多くのコンテンツが含まれているため、データを1行ずつ手動で検索すると、かなり面倒なことになり、時間も無駄にして、効率的にも名案とは言えませんから、困りますよね。Microsoft Excelは、非常に強力なデータ処理機能(検索と置換)を提供しています。この機能により、求めるデータをすばやく検索し、一度に1つ以上のセルのデータを変更したりまたは更新したりもできます。だけど、開発のために、プログラムで実装する場合もあります。この記事では、無料版のSpire.XLS for .NETというコンポーネントをダウンロードしてから、C#を使用してExcelの検索と置換機能を実装する方法について説明します。

 

これは操作するExcel文書のスクリーンショット

これからはA5およびA6の「カナダ」を「イギリス」に置換します。

詳細な手順

 

まず、新しいVisual C#コンソールプロジェクトを作成し、参照を追加して、次の名前空間を使用します。

using System.Drawing;

using Spire.Xls;

 

ステップ1:新しいWorkbookクラスのオブジェクトを作成し、Excelドキュメントを読み込みます。

Workbook workbook = new Workbook();

workbook.LoadFromFile("C:\\Users\\Administrator\\Desktop\\sample.xlsx");

 

ステップ2:テキストを置き換える必要のあるワークシートを取得します。これが最初のワークシートです。

Worksheet sheet = workbook.Worksheets[0];

 

ステップ3:テキスト「カナダ」を検索し、Worksheet.FindAllString()メソッドを呼び出してすべてを「イギリス」に置き換えます。ここでは、置き換えられたデータを簡単かつ迅速に見つけるために、ハイライトの色も設定します。

CellRange ranges = sheet.FindAllString("カナダ", false, false);

foreach (CellRange range in ranges)

{

    range.Text = "イギリス";

    range.Style.Color = Color.LawnGreen;

}

 

ステップ4:ファイルを保存して再度開きます。

workbook.SaveToFile("replace.xlsx");

System.Diagnostics.Process.Start("replace.xlsx");

 

結果は以下のようになります

 

完全なるコード

using System.Drawing;

using Spire.Xls;

 

namespace Excel find and replace data

{

    class Program

    {

        static void Main(string args)

        {

            Workbook workbook = new Workbook();

            workbook.LoadFromFile("C:\\Users\\Administrator\\Desktop\\sample.xlsx");

 

            Worksheet sheet = workbook.Worksheets[0];

            CellRange[] ranges = sheet.FindAllString("カナダ", false, false);

            foreach (CellRange range in ranges)

            {

                range.Text = "イギリス";

                range.Style.Color = Color.LawnGreen;

            }

 

            workbook.SaveToFile("replace.xlsx");

            System.Diagnostics.Process.Start("replace.xlsx");

        }

    }

}

 

今回のExcelでデータを検索、置換する方法は以上でした、最後まで読んでいただきありがとうございました。

C#使用してPDFに画像の背景を追加する方法

本日はPDFに関する機能を紹介していだたきたいと思います。PDFは、近年最も人気のあるファイルの1つであり、オフィスでも日常生活でもよく使われています。PDFファイルの背景色は白であることが多く、読みすぎると疲れを感じることも珍しくありません。したがって、その背景を自分の好みに変更して、ファイルの見た目がより美しくするだけでなく、人々も自分の目を健康的に使うことになります。では、次はC#を使用してPDFファイルに画像の背景を追加する方法について話しましょう。

 

これは例として使用するファイルのスクリーンショットです。

f:id:uha_noki:20220415154250p:plain

コードを使用する

 

ステップ1 Visual C#コンソールプロジェクトを作成し、参照を追加して名前空間を使用します。

using System.Drawing;

using Spire.Pdf;

 

ステップ2 PDFドキュメントオブジェクトを作成し、ソースPDFファイルをロードします。

PdfDocument doc = new PdfDocument();

doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf");

 

ステップ3 PDFファイルの最初のページを取得します。

PdfPageBase page = doc.Pages[0];

 

ステップ4 画像を読み込み、ページの背景として設定します。

Image backgroundImage = Image.FromFile("C:\\Users\\Administrator\\Desktop\\background.jpg");

page.BackgroundImage = backgroundImage;

 

ステップ5 ファイルを保存して再度開きます。

doc.SaveToFile("result.pdf");

System.Diagnostics.Process.Start("result.pdf");

 

背景の画像を追加した結果

f:id:uha_noki:20220415154405p:plain



完全なるコード一覧

using System.Drawing;

using Spire.Pdf;

 

namespace Add_image_background_to_PDF

{

    class Program

    {

        static void Main(string[] args)

        {

            PdfDocument doc = new PdfDocument();

            doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf");

            PdfPageBase page = doc.Pages[0];

            Image backgroundImage = Image.FromFile("C:\\Users\\Administrator\\Desktop\\background.jpg");

            page.BackgroundImage = backgroundImage;

            doc.SaveToFile("result.pdf");

            System.Diagnostics.Process.Start("result.pdf");

        }

    }

}

 

結語

 

PDFはMicrosoftのOfficeソフトウェアではありませんが、多くの利点があるため広く使用されています。 WordやExcelなどのファイルに比べて、PDF自体は編集しにくく、他のコンポーネントを使う必要があります。この例では、E-iceblue社の無料のPDFコンポーネントSpire.PDF for .NETを使用しました。日常では色んな要求も満たすことができるし、とても便利です。ではまた!

C#を使用してExcelドキュメントを保護する方法

Excelドキュメントの保護に関して、最初に頭に浮かぶのはパスワード保護の方法ではないでしょうか。しかしWordとは少し違って、一般に、各Excelワークブックには、多かれ少なかれ特定の数のワークシートが含まれているため、したがって、Excelドキュメントを保護するのは、ワークブックの保護とワークシートの保護という2つの種類に分類されます。Excel 2013で、左上隅にある「ファイル」->「情報」をクリックして、ワークブックの保護と当のワークシートの保護である2つのオプションを見つけます。ファイルのパスワード保護を設定することで、ドキュメントのプライバシーを保護したり、他のユーザーがファイルを変更できないようにしたりできます。もちろん、それを実現する方法がいろいろあります。今日は主にC#プログラミングおよび使いやすいコンポーネントであるSpire.XLS for .NETを使用してExcelドキュメントを保護する方法を記述しています。

 

パート1:ワークブックを保護する

 

詳細な手順:

 

ステップ1:名前空間を使用する:

 

新しいVisual C#プロジェクトを作成し、参照を追加して、次の名前空間を使用します。

using Spire.Xls;

 

ステップ2:新しいワークブックオブジェクトを作成し、保護するExcelドキュメントを読み込みます。

Workbook book = new Workbook();

book.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.xlsx");

 

ステップ3:パスワードで保護されたブックを設定します。

book.Protect("abc-123");

 

パート2:ワークシートを保護する

 

ここでは、保護ワークシートをパスワード保護とパスワードおよび操作モード保護の2つのカテゴリに分けられます。

 

パスワード保護:パスワード保護が設定された後、ユーザーはワークシートに変更を加えることができなくなります。これは読み取り専用に相当します。変更する場合は、パスワードを入力して保護を解除する必要があります。

 

パスワードと操作モードの保護:このモードでは、ユーザーは一部の操作を変更できます。

 

ステップ4:ブックの保護と同様に、保護する必要のあるワークシートを取得し、パスワードと操作保護を設定します(ここでは、最初のワークシートとパスワード保護方法を選択します)。

Worksheet sheet = book.Worksheets[0];

sheet.Protect("def-345", SheetProtectionType.None);

 

ステップ5:ドキュメントを保存して再起動します。

book.SaveToFile("ProtectExcel.xlsx", ExcelVersion.Version2010);

System.Diagnostics.Process.Start("ProtectExcel.xlsx");

 

ワークブックを保護する結果を示す画像:

f:id:uha_noki:20220413115421p:plain

ワークシートを保護する結果を示す画像:

f:id:uha_noki:20220413115439p:plain

完全なるコード一覧

using Spire.Xls;

 

namespace Protect_Excel_Document

{

    class Program

    {

        static void Main(string[] args)

        {

            //ワークブックをロードする

            Workbook book = new Workbook();

            book.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.xlsx");

 

            //ワークブックを保護する

            book.Protect("abc-123");

 

            //パスワードでワークシートを保護する

            Worksheet sheet = book.Worksheets[0];

            sheet.Protect("def-345", SheetProtectionType.None);

 

            //ドキュメントを保存する

            book.SaveToFile("ProtectExcel.xlsx", ExcelVersion.Version2010);

            System.Diagnostics.Process.Start("ProtectExcel.xlsx");

        }

    }

}

 

今回のExcelドキュメントを保護する方法は以上でした、最後まで読んでいただきありがとうございました。

C#を使用してExcelデータ検証をする方法

Excelでは、データ検証機能を使用して、ワークシートのセルに入力できるデータを定義できます。たとえば、入力したデータを特定の範囲の数値に制限したり、ドロップダウンリストを使用してユーザーが選択できるデータなどを制限したりすることができます。そしてこの記事では、主にC#プログラミングおよび強力なライブラリーであるSpire.XLS for .NETを使用してExcelのデータ有効性機能を実現する方法について説明します。

 

一 数値の有効性

 

データ入力の範囲を1から10までの数字に制限する

 

1.新しいExcelワークブックを作成し、最初のワークシートを取得します。

Workbook wb = new Workbook();

Worksheet sheet = wb.Worksheets[0];

2.セルB9にテキストを入力し、フォーマットします。

sheet.Range["B9"].Text = "数字を入力してください";

sheet.Range["B9"].Style.Font.IsBold = true;

sheet.Range["B9"].Style.KnownColor = ExcelColors.Turquoise;

3.セルC9に番号検証を適用します。

sheet.Range["C9"].DataValidation.AllowType = CellDataType.Decimal;

sheet.Range["C9"].DataValidation.Formula1 = "1";

sheet.Range["C9"].DataValidation.Formula2 = "10";

sheet.Range["C9"].DataValidation.CompareOperator = ValidationComparisonOperator.Between;

sheet.Range["C9"].DataValidation.InputMessage = "このセルに1から10までの数字を入力してください";

sheet.Range["C9"].Style.KnownColor = ExcelColors.LightGreen1;

操作した結果:

f:id:uha_noki:20220412103357p:plain

二 リストの有効性

 

ドロップダウンリストのオプションに入力内容を制限する

 

1.セルB2にテキストを入力し、フォーマットします。

sheet.Range["B2"].Text = "部門:";

sheet.Range["B2"].Style.Font.IsBold = true;

sheet.Range["B2"].Style.KnownColor = ExcelColors.Turquoise;

2.リスト検証をセルC2に適用します。

sheet.Range["C2"].DataValidation.Values = new string { "セール", "人事", "研究開発", "ファイナンス" };

sheet.Range["C2"].DataValidation.IsSuppressDropDownArrow = false;

sheet.Range["C2"].Style.KnownColor = ExcelColors.LightGreen1;

操作した結果:

f:id:uha_noki:20220412103500p:plain

三 データ有効性エラーメッセージ/警告をカスタマイズする

 

データの有効性がセルに適用された後、条件に相応しくないデータにはセルに正常に入力されません。要件を満たさないデータが強制的に入力されると、Excelは次のようなエラーメッセージを表示します。

f:id:uha_noki:20220412103550p:plain

Excelのデフォルトエラーメッセージを使用したくない場合は、次のコードを使用してエラーメッセージの内容をカスタマイズできます。

sheet.Range["C2"].DataValidation.AlertStyle = AlertStyleType.Warning;

sheet.Range["C2"].DataValidation.ShowError = true;

sheet.Range["C2"].DataValidation.ErrorTitle = "エラー001";

sheet.Range["C2"].DataValidation.ErrorMessage = "ドロップダウンリストから項目を選択してください"; 

操作した結果:

f:id:uha_noki:20220412103634p:plain

完全なるコード:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using Spire.Xls;

 

namespace Apply_data_validation_to_excel_cells

{

    class Program

    {

        static void Main(string args)

        {

            Workbook wb = new Workbook();

            Worksheet sheet = wb.Worksheets[0];

 

            //数値有効性を適用する

            sheet.Range["B9"].Text = "数字を入力してください";

            sheet.Range["B9"].Style.Font.IsBold = true;

            sheet.Range["B9"].Style.KnownColor = ExcelColors.Turquoise;

 

            sheet.Range["C9"].DataValidation.AllowType = CellDataType.Decimal;

            sheet.Range["C9"].DataValidation.Formula1 = "1";

            sheet.Range["C9"].DataValidation.Formula2 = "10";

            sheet.Range["C9"].DataValidation.CompareOperator = ValidationComparisonOperator.Between;

            sheet.Range["C9"].DataValidation.InputMessage = "このセルに1から10までの数字を入力してください";

            sheet.Range["C9"].Style.KnownColor = ExcelColors.LightGreen1;

 

            //ドロップダウンリストの有効性を適用する

            sheet.Range["B2"].Text = "部門";

            sheet.Range["B2"].Style.Font.IsBold = true;

            sheet.Range["B2"].Style.KnownColor = ExcelColors.Turquoise;

 

            sheet.Range["C2"].DataValidation.Values = new string[] { "セール", "人事", "研究開発", "ファイナンス" };

            sheet.Range["C2"].DataValidation.IsSuppressDropDownArrow = false;

            sheet.Range["C2"].Style.KnownColor = ExcelColors.LightGreen1;

 

            //有効性エラーメッセージをカスタマイズする

            sheet.Range["C2"].DataValidation.AlertStyle = AlertStyleType.Warning;

            sheet.Range["C2"].DataValidation.ShowError = true;

            sheet.Range["C2"].DataValidation.ErrorTitle = "エラー001";

            sheet.Range["C2"].DataValidation.ErrorMessage = "ドロップダウンリストから項目を選択してください";

 

            //ドキュメントを保存する

            wb.SaveToFile("result.xlsx", FileFormat.Version2010);

            System.Diagnostics.Process.Start("result.xlsx");

        }

    }

}

今回のExcelデータ検証をする方法は以上でした、最後まで読んでいただきありがとうございました。

C#を使用してExcelセルにテキストと画像のコメントを追加する方法

注釈とは、テキスト注釈と画像注釈の2種類があり、常にレポートとかに応用され、読者にデータをよりよく理解させるために、役立つ追加情報を注釈を付けるという形式で使用されています。では、注釈を追加する方法といえば? Microsoft Excelには、コメントを挿入する組み込み関数が用意されているため、セルにコメントを簡単に追加できます。非常にちょろい方法ですからここは紹介しません。この記事の主な目的は、C#プログラミングを使用してこの機能を実現する方法を紹介することです。そのために、ここは無料のコンポーネントFree Spire.XLSを使用しよう。これは独立した.NET Excelコンポーネントであり、実行するのにMicrosoft Officeに依存せず、操作するのも簡単です。

 

下準備

1.無料のSpire.XLSをダウンロードしてインストールします

2.C#コンソールプロジェクトを作成し、Spire.XLS.dllへの参照を追加します

コード一覧

以下の名前空間を使用する:

using System.Drawing;

using Spire.Xls;

ステップ1、Excelドキュメントをロードする

Workbook workbook = new Workbook();

Worksheet sheet = workbook.Worksheets[0];

 

ステップ2、テキスト注釈を追加する

ExcelFont font1 = workbook.CreateFont();

font1.FontName = "Calibri";

font1.Color = Color.Firebrick;

font1.IsBold = true;

sheet.Range["C6"].Comment.RichText.Text = "evanece@hotmail.com";

sheet.Range["C6"].Comment.Width = 200;

sheet.Range["C6"].Comment.Height = 50;

sheet.Range["C6"].Comment.RichText.SetFont(0, 18, font1);

 

ステップ3、画像注釈を追加する

Image image = Image.FromFile(@"C:\Users\Administrator\Desktop\Logo.png");

sheet.Range["E6"].Comment.Fill.CustomPicture(image, "Logo.png");

sheet.Range["E6"].Comment.Height = image.Height;

sheet.Range["E6"].Comment.Width = image.Width;

 

ステップ4、ドキュメントを保存する

workbook.SaveToFile("result.xls", ExcelVersion.Version97to2003);

 

追加した結果:

テキストコメント:

f:id:uha_noki:20220408112432p:plain

画像コメント:

f:id:uha_noki:20220408112455p:plain

完全なるコード

using System.Drawing;

using Spire.Xls;

 

namespace ExcelComment

{

    class Program

    {

        static void Main(string[] args)

        {

            Workbook workbook = new Workbook();

            Worksheet sheet = workbook.Worksheets[0];

 

            ExcelFont font1 = workbook.CreateFont();

            font1.FontName = "Calibri";

            font1.Color = Color.Firebrick;

            font1.IsBold = true;

            sheet.Range["C6"].Comment.RichText.Text = "123@yahoo.com";

            sheet.Range["C6"].Comment.Width = 200;

            sheet.Range["C6"].Comment.Height = 50;

            sheet.Range["C6"].Comment.RichText.SetFont(0, 18, font1);

 

            Image image = Image.FromFile(@"C:\Users\Administrator\Desktop\Logo.png");

            sheet.Range["E6"].Comment.Fill.CustomPicture(image, "Logo.png");

            sheet.Range["E6"].Comment.Height = image.Height;

            sheet.Range["E6"].Comment.Width = image.Width;

 

            workbook.SaveToFile("result.xls", ExcelVersion.Version97to2003);

        }

    }

}

今回のExcelセルにテキストと画像のコメントを追加する方法は以上でした、最後まで読んでいただきありがとうございました。

C#を使用してExcelシートに背景画像を挿入する方法

日常生活で、人々は常にMS Excelを使用して仕事を完成させます。通常、MS Excelを開くと、その中のワークシートはすべて空白な背景でけっこう単調なものです。もちろん、MS Excelは画像をワークブックに挿入してその背景として設置することができます。しかし、Microsoft Officeがインストールされていない場合、Excelファイルに素敵な背景画像を設定したいならどうすればいいでしょうか?この機能を実現するため、次はC#で無料のコントロールであるFree Spire.XLS for .NETを使用する方法を紹介します。

 

追加する必要のある名前空間:

using System.Drawing;

using Spire.Xls;

操作するファイルのスクリーンショット:

f:id:uha_noki:20220406182114p:plain

詳細な手順とコードスニペットは次のとおりです。

 

ステップ1:新しいブックオブジェクトを作成します。

Workbook workbook = new Workbook();

ステップ2:システムからExcelファイルをロードします。

workbook.LoadFromFile("C:\\Users\\Administrator\\Desktop\\sample.xlsx");

ステップ3:例としてExcelファイルの一番目のテーブルを選択します。

Worksheet sheet = workbook.Worksheets[0];

ステップ4:画像をロードします。

Bitmap bm = new Bitmap(System.Drawing.Image.FromFile("C:\\Users\\Administrator\\Desktop\\image.jpg"));

ステップ5:この画像を背景として設定します。

sheet.PageSetup.BackgoundImage = bm;

ステップ6:Excelファイルを保存し、そして開きます。

workbook.SaveToFile("result.xlsx");

System.Diagnostics.Process.Start("result.xlsx");

 

挿入した結果は以下のようになります:

f:id:uha_noki:20220406182057p:plain

完全なるコード一覧

 

using System.Drawing;

using Spire.Xls;

 

namespace add background image

{

    class Program

    {

        static void Main(string[] args)

        {

            Workbook workbook = new Workbook();

            workbook.LoadFromFile("C:\\Users\\Administrator\\Desktop\\sample.xlsx");

            Worksheet sheet = workbook.Worksheets[0];

            Bitmap bm = new Bitmap(System.Drawing.Image.FromFile("C:\\Users\\Administrator\\Desktop\\image.jpg"));

            sheet.PageSetup.BackgoundImage = bm;

            workbook.SaveToFile("result.xlsx");

            System.Diagnostics.Process.Start("result.xlsx");

        }

    }

}

 

今回のExcelシートに背景画像を挿入する方法は以上で終わります、最後まで読んでいただきありがとうございました。