2016-11-12 2 views
2

ExcelファイルをC#で次のコードにインポートしています。しかし、データベースをチェックすると、1つのヌル行が追加されています。Excelをインポートすると、C#で追加の行がデータベースに追加されます

このヌル行を削除するためにこのコードを変更することを教えてください。

public static class ExcelTools 
{ 
    static DataSet result = new DataSet(); 
    public static DataTable ExcelToDataTable(string path) 
    { 
     var pck = new OfficeOpenXml.ExcelPackage(); 
     pck.Load(File.OpenRead(path)); 
     var ws = pck.Workbook.Worksheets.First(); 
     DataTable tbl = new DataTable(); 
     bool hasHeader = true; 
     foreach (var firstRowCell in ws.Cells[1, 1, 1, ws.Dimension.End.Column]) 
     { 
      tbl.Columns.Add(hasHeader ? firstRowCell.Text : string.Format("Column {0}", firstRowCell.Start.Column)); 
     } 
     var startRow = hasHeader ? 2 : 1; 
     for (var rowNum = startRow; rowNum <= ws.Dimension.End.Row; rowNum++) 
     { 
      var wsRow = ws.Cells[rowNum, 1, rowNum, ws.Dimension.End.Column]; 
      var row = tbl.NewRow(); 
      foreach (var cell in wsRow) 
      { 
       row[cell.Start.Column - 1] = cell.Text; 
      } 
      tbl.Rows.Add(row); 
     } 
     pck.Dispose(); 
     tbl.TableName = System.IO.Path.GetFileNameWithoutExtension(path); 
     return tbl; 
    } 
} 

enter image description here

+0

どのようにdbをチェックしますか?スクリーンショットに参加できますか? –

+0

私はそのテーブルを選択し、1000行を選択して値をチェックします –

+0

私はスクリーンショットに参加する方法がわかりません –

答えて

1

あなたは最後NULL行にだまされている可能性があります:

enter image description here

手動で行を追加することができます。つまり、データベースにはではありません。確かに、空の行を数えることができます:

select sum(case when [COL] is null then 1 else 0 end) count_nulls 
from [TABLE] 
+0

アップロードした写真をご覧ください。各インポート後に1つのヌル行が追加されます。 –

関連する問題