【VB.NET】ClosedXML:データ型

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

コード

Dim workbook = New XLWorkbook
Dim ws = workbook.Worksheets.Add("データ型")

Dim co = 2
Dim ro = 1

ro += 1
ws.Cell(ro, co).Value = "テキスト:"
ws.Cell(ro, co + 1).Value = "Hello World."

ro += 1
ws.Cell(ro, co).Value = "日付:"
ws.Cell(ro, co + 1).Value = New DateTime(2010, 9, 2)

ro += 1
ws.Cell(ro, co).Value = "日時:"
ws.Cell(ro, co + 1).Value = New DateTime(2010, 9, 2, 13, 45, 22)

ro += 1
ws.Cell(ro, co).Value = "ブール:"
ws.Cell(ro, co + 1).Value = True

ro += 1
ws.Cell(ro, co).Value = "数値:"
ws.Cell(ro, co + 1).Value = 123.45

ro += 1
ws.Cell(ro, co).Value = "タイムスパン:"
ws.Cell(ro, co + 1).Value = New TimeSpan(33, 45, 22)

ro += 1

ro += 1
ws.Cell(ro, co).Value = "明示的テキスト:"
ws.Cell(ro, co + 1).Value = "'Hello World."

ro += 1
ws.Cell(ro, co).Value = "テキストとして入力した日付:"
ws.Cell(ro, co + 1).Value = "'" + New DateTime(2010, 9, 2).ToString

ro += 1
ws.Cell(ro, co).Value = "テキストとして入力した日時:"
ws.Cell(ro, co + 1).Value = "'" + New DateTime(2010, 9, 2, 13, 45, 22).ToString

ro += 1
ws.Cell(ro, co).Value = "テキストとして入力したブール:"
ws.Cell(ro, co + 1).Value = "'" + True.ToString

ro += 1
ws.Cell(ro, co).Value = "テキストとして入力した数値:"
ws.Cell(ro, co + 1).Value = "'123.45"

ro += 1
ws.Cell(ro, co).Value = "テキストとして入力したタイムスパン:"
ws.Cell(ro, co + 1).Value = "'" + New TimeSpan(33, 45, 22).ToString

ro += 1

ro += 1
ws.Cell(ro, co).Value = "データ型の変更:"

ro += 1

ro += 1
ws.Cell(ro, co).Value = "日付からテキストへ:"
ws.Cell(ro, co + 1).Value = New DateTime(2010, 9, 2)
ws.Cell(ro, co + 1).DataType = XLDataType.Text
'元記事の XLCellValues は ClosedXML のアップデートで XLDataType に変更された(by エレン・イースト)

ro += 1
ws.Cell(ro, co).Value = "日時からテキストへ:"
ws.Cell(ro, co + 1).Value = New DateTime(2010, 9, 2, 13, 45, 22)
ws.Cell(ro, co + 1).DataType = XLDataType.Text

ro += 1
ws.Cell(ro, co).Value = "ブールからテキストへ:"
ws.Cell(ro, co + 1).Value = True
ws.Cell(ro, co + 1).DataType = XLDataType.Text

ro += 1
ws.Cell(ro, co).Value = "数値からテキストへ:"
ws.Cell(ro, co + 1).Value = 123.45
ws.Cell(ro, co + 1).DataType = XLDataType.Text

ro += 1
ws.Cell(ro, co).Value = "タイムスパンからテキストへ:"
ws.Cell(ro, co + 1).Value = New TimeSpan(33, 45, 22)
ws.Cell(ro, co + 1).DataType = XLDataType.Text

ro += 1
ws.Cell(ro, co).Value = "テキストから日付へ:"
ws.Cell(ro, co + 1).Value = "'" + New DateTime(2010, 9, 2).ToString
ws.Cell(ro, co + 1).DataType = XLDataType.DateTime

ro += 1
ws.Cell(ro, co).Value = "テキストから日時へ:"
ws.Cell(ro, co + 1).Value = "'" + New DateTime(2010, 9, 2, 13, 45, 22).ToString
ws.Cell(ro, co + 1).DataType = XLDataType.DateTime

ro += 1
ws.Cell(ro, co).Value = "テキストからブールへ:"
ws.Cell(ro, co + 1).Value = "'" + True.ToString
ws.Cell(ro, co + 1).DataType = XLDataType.Boolean

ro += 1
ws.Cell(ro, co).Value = "テキストから数値へ:"
ws.Cell(ro, co + 1).Value = "'123.45"
ws.Cell(ro, co + 1).DataType = XLDataType.Number

ro += 1
ws.Cell(ro, co).Value = "テキストからタイムスパンへ:"
ws.Cell(ro, co + 1).Value = "'" + New TimeSpan(33, 45, 22).ToString
ws.Cell(ro, co + 1).DataType = XLDataType.TimeSpan

ro += 1

ro += 1
ws.Cell(ro, co).Value = "書式指定された日付からテキストへ:"
ws.Cell(ro, co + 1).Value = New DateTime(2010, 9, 2)
ws.Cell(ro, co + 1).Style.DateFormat.Format = "yyyy-MM-dd"
ws.Cell(ro, co + 1).DataType = XLDataType.Text

ro += 1
ws.Cell(ro, co).Value = "書式指定された数値からテキストへ:"
ws.Cell(ro, co + 1).Value = 12345.6789
ws.Cell(ro, co + 1).Style.NumberFormat.Format = "#,##0.00"
ws.Cell(ro, co + 1).DataType = XLDataType.Text

ro += 1

ro += 1
ws.Cell(ro, co).Value = "空のテキスト:"
ws.Cell(ro, co + 1).Value = 12345.6789
ws.Cell(ro, co + 1).Style.NumberFormat.Format = "#,##0.00"
ws.Cell(ro, co + 1).DataType = XLDataType.Text
ws.Cell(ro, co + 1).Value = ""

ro += 1

'インライン文字列の使用(ほとんどのユーザーには不要な機能)
'
'デフォルトでは、すべてのセル内の文字列は複数のセルから
'参照(共有)できるように保存されます。
'(複数のセルが同一のテキストを含むとき、そのセルの数だけ
'テキストを保存するのではなく、1つのテキストのみを
'保存して複数のセルからそのインデックスを参照する)
'.ShareString プロパティに False を設定するとこの機能を無効にできます。
ro += 1
ws.Cell(ro, co).Value = "インライン文字列:"
Dim cell = ws.Cell(ro, co + 1)
cell.Value = "非共有"
cell.ShareString = False

'ワークブックのすべての共有文字列を参照するには次のメソッドを使用します。
'workbook.GetSharedStrings
'ClosedXML 0.94.2 においてこのメソッドは無効のようです。by エレン・イースト

'コンテンツが日本語の場合は日本語フォントにしておかないと AdjustToContents が正しく動作しない
ws.Style.Font.FontName = "游ゴシック";
ws.Columns(2, 3).AdjustToContents

workbook.SaveAs("D:\test\DataTypes.xlsx")

 

実行結果

 

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

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