web-dev-qa-db-ja.com

ClosedXMLで列のデータ型を設定するにはどうすればよいですか?

セルのデータ型が設定されているドキュメントには、次のような例がたくさんあります。

ws.Cell(1, 1).SetDataType(XLCellValues.Text);

しかし、列のデータ型を設定しようとすると、次のようになります。

ws.Column(1).SetDataType(XLCellValues.Text)

ClosedXMLは5MBのファイルを生成し、データ型は実際には設定されていません。

この操作は、Excelで期待どおりに機能します(列ヘッダーを右クリックし、セルをフォーマットするなど)。

ClosedXMLの制限である場合、簡単に修正できますか、それとも回避策がありますか?

8
astef

ClosedXMLは、列内のすべてのセルのデータ型を最大値(行100万程度)まで設定します。これを使用して、列で使用されているセルのデータ型のみを設定します。

ws.Column(1).CellsUsed().SetDataType(XLDataType.Text);

さらに、ClosedXMLのデータ型はExcelのセル形式と同じではありません(違いを確認するには、ドキュメントのサンプルファイルを参照してください)。