LoginSignup
4
4

More than 5 years have passed since last update.

ClodedXMLで数字を文字列として出力したいとき

Posted at

はじめに

ClodedXMLで数字を文字列として出力したいときのメモです。
間違いや勘違いに関しましてはご指摘いただけると幸いです。


sheet.Cell(row, col).Value = "123";

上記のようにClodedXMLでセルに数字を文字列として格納すると、Excelを開いたときに数値として扱われてしまいます。

sheet.Cell(row, col).Value = "'123";

sheet.Cell(row, col)
    .SetValue("123")
    .SetDataType(XLCellValues.Text);

上記の書き方だと、Excelを開いたときは文字列として表示しているように見えるのですが、そのセルを編集しようとするとエクセル側で数値と判断してしまうのか、数値の表示に変わってしまいます。

sheet.Cell(row, col)
    .SetValue("123")
    .Style.NumberFormat.Format = "@";

GitHubのClodedXMLのWikiのFAQの4番目を使用すると、編集しようとしても文字列として扱います。
上記以外では以下も同じ内容です。

sheet.Cell(row, col)
    .SetValue("123")
    .Style.NumberFormat.SetFormat("@");

sheet.Cell(row, col)
    .SetValue("123")
    .Style.NumberFormat.NumberFormatId = 49

NumberFormatIdの49の数字はGitHubのClodedXMLのWikiのNumberFormatIdのページから確認できます。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4