【问题标题】:When I import Excel, an extra row is added in database by C#当我导入 Excel 时,C# 在数据库中添加了一个额外的行
【发布时间】:2016-11-12 09:14:46
【问题描述】:

我正在通过以下代码通过 C# 导入 Excel 文件。但是当我检查数据库时,我看到添加了一个空行。

您能帮我更改此代码以删除此空行吗?

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;
    }
}

【问题讨论】:

  • 如何检查数据库?你能加入截图吗?
  • 我去数据库选择那个表并点击选择前 1000 行并检查值
  • 不知道怎么加入截图
  • 您可以edit您的帖子并按Ctrl + G添加屏幕截图
  • 为什么不使用 oledbcommand 将 excel 导入数据表。如果有兴趣访问此link

标签: c# excel


【解决方案1】:

你可能被最后一行NULL 愚弄了:

允许您手动添加一行。这意味着它不在您的数据库中。可以肯定的是,您可以计算空行数:

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

【讨论】:

  • 请看我上传的图片。每次导入后添加一个空行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-13
  • 2021-10-28
  • 2020-03-16
  • 1970-01-01
  • 1970-01-01
  • 2020-04-07
相关资源
最近更新 更多