【VB.NET】ClosedXML:その他(画像、ふりがな、ワークブックのプロパティ、ASP.NET)

MEMO
  • この記事は GitHub - ClosedXML - Wiki を参考に書かせていただいたものですが、C# から VB.NET への書き換えをし、英語から日本語へ翻訳しただけでなく、元記事の構成・コード・コメント等を変更している場合もありますのでご了承ください。
  • 現在 ClosedXML のメンテナンスをご担当されている Francois Botha 様からの掲載許可もいただいてます。
  • この記事のコードサンプルについては、Imports ClosedXML.Excel が宣言されていることを前提としています。
  • ClosedXML の作成者について:Francois Botha, Aleksei Pankratev, Manuel de Leon, Amir Ghezelbash
  • ClosedXML のライセンスについて:GitHub - ClosedXML - MIT License

画像はどのようにして挿入しますか?

  1. IXLWorksheet.AddPicture - ワークシートに画像を追加します
  2. IXLPicture.MoveTo - 指定の位置に画像を移動します
Using wb As New XLWorkbook
    Dim ws = wb.AddWorksheet("Sheet1")

    Dim imagePath = "D:\test\pictures\pic1.jpg"

    Dim image = ws.AddPicture(imagePath)
    With image
        .MoveTo(ws.Cell("B3"))
        .Scale(0.5) '画像をリサイズ
    End With      

    wb.SaveAs("D:\test\file.xlsx")
End Using

画像の挿入は ClosedXML v0.88 から導入された機能です。

ふりがな(ルビ)

ふりがな(ルビ)は RichText の機能の一部として実装されています。

Dim wb = new XLWorkbook
Dim ws = wb.Worksheets.Add("Using Phonetics")

Dim cell = ws.Cell(1, 1)

'まずテキストを追加
cell.RichText.AddText("元気ですかーっ!?").SetFontSize(16)

'ふりがなを設定
cell.RichText.Phonetics.SetFontSize(8)
cell.RichText.Phonetics.Add("いのき", 0, 3)

wb.SaveAs("D:\test\UsingPhonetics.xlsx")

上記のコードでは、Excel が自動的に付けるふりがなと区別できるようにするため、あえて「元気」に「いのき」というふりがなを付けています。

Excel 上でふりがなが表示されないときは、該当セルを選択してから[ふりがなの表示]ボタンをクリックしてください。

ワークブックのプロパティ

下記はワークブックのプロパティを設定するコードです。

Dim wb = new XLWorkbook
Dim ws = wb.Worksheets.Add("Sheet 1")

'定義済みプロパティ
wb.Properties.Title = "タイトル!"
wb.Properties.Subject = "サブタイトル!"
wb.Properties.Author = "作成者!"
wb.Properties.Manager = "管理者!"
wb.Properties.Company = "会社名!"
wb.Properties.Category = "分類!"
wb.Properties.Keywords = "キーワード!"
wb.Properties.Comments = "コメント!"
wb.Properties.LastModifiedBy = "最終保存者!"
'Explorer でファイルを右クリック、プロパティから確認可能
wb.Properties.Status = "内容の状態!"

'カスタムプロパティ
wb.CustomProperties.Add("テキストのプロパティ!", "XXX")
wb.CustomProperties.Add("日付のプロパティ!", New DateTime(2019, 7, 5))
wb.CustomProperties.Add("数値のプロパティ!", 123.456)
wb.CustomProperties.Add("ブール値のプロパティ!", True)

wb.SaveAs("D:\test\WorkbookProperties.xlsx")

 

ワークブックのプロパティを確認するには、ワークブックを開いてから Excel 上部の[ファイル]メニューを選択し、画面の右のほうにある[プロパティ]>[詳細プロパティ]を選択します。

下図はワークブックのプロパティダイアログの[ファイルの概要]タブの様子です。

下図はワークブックのプロパティダイアログの[詳細情報]タブの様子です。

下図はワークブックのプロパティダイアログの[ユーザー設定]タブの様子です。

なお、エクスプローラー上でワークブックファイルを右クリックしてプロパティの一部を確認することもできます。

ASP.NET で Excel ファイルを配布するには

ASP.NET Web フォーム

'Workbook を作成
Dim workbook As XLWorkbook = New XLWorkbook
workbook.Worksheets.Add("Sample").Cell(1, 1).SetValue("Hello World")

'Response の用意
Dim httpResponse As HttpResponse = Response
httpResponse.Clear()
httpResponse.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
httpResponse.AddHeader("content-disposition", "attachment;filename=""HelloWorld.xlsx""")

'Response.OutputStream に Workbook をフラッシュ
Using memoryStream As New System.IO.MemoryStream
  workbook.SaveAs(memoryStream)
  memoryStream.WriteTo(httpResponse.OutputStream)
  memoryStream.Close
End Using

httpResponse.End

 

「【VB.NET】ClosedXML の使い方」の一覧を表示

購読する
通知を受け取る対象
guest
0 Comments
Inline Feedbacks
View all comments