画像はどのようにして挿入しますか?
- IXLWorksheet.AddPicture – ワークシートに画像を追加します
- 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