###前提・実現したいこと
ASP.Net、C#で、データベースのテーブルをそのままエクセル出力する機能を開発しております。
エクセルファイルの操作については、Closedxmlを使用しており、データベースから読み込んだテーブルをDataTable型にセット・読込を行い、エクセルファイルで保存しています。
###発生している問題・エラーメッセージ
入力文字列の形式が正しくありません。 文字列をDateTimeに変換するときに、DateTimeオブジェクトに各変数を指定する前に日付を取得する文字列を解析します。 ・・・
###該当のソースコード
/// <summary> /// Excelブックを新規に作成してデータテーブルの内容を出力します /// </summary> /// <param name="dt">DataTable</param> /// <param name="path">書き込み先のディレクトリパス</param> /// <param name="name">ファイル名称</param> /// <param name="header">ヘッダー指定</param> public static void DataTableToExcel2(System.Data.DataTable dt, string path, string name, Array header) { try { // ブックを作成 var workbook = new XLWorkbook(); //シート作成 var ws = workbook.Worksheets.Add(dt, "Sheet"); var rgn = ws.Range(1, ws.FirstColumnUsed().ColumnNumber(), ws.LastRowUsed().RowNumber(), ws.LastColumnUsed().ColumnNumber()); rgn.Style.Font.FontSize = 10; rgn.Style.Font.FontName = "メイリオ"; rgn.Style.NumberFormat.SetFormat("@"); ws.Cell("A1").InsertData(new[] { header }); //全部の列の幅を自動調整 ws.Columns().AdjustToContents(); //保存 var tmp = Path.Combine(path, name); workbook.SaveAs(tmp); } catch (Exception ex) { Console.Write(name + "を作成できませんでした。"); Console.Write(ex.Message); } }
###試したこと
テーブルにDateTime型のフィールドがあるので、セルの書式設定を文字列にしてみましたが、だめでした。
単純にDateTime型に入っている値を文字列としてエクセルに出力できればいいと思ってます。
DateTime型のないテーブルであれば、正常に処理は完了してます。
###補足情報(言語/FW/ツール等のバージョンなど)
ASP.Net、C#、ClosedXML

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/13 06:36