C# 使用ASP.NET在SQL Server中上载Excel数据的最佳做法

C# 使用ASP.NET在SQL Server中上载Excel数据的最佳做法,c#,asp.net,sql-server,C#,Asp.net,Sql Server,我正在寻找通过asp.net web应用程序在Sql server 2000数据库中上载excel数据的最佳做法。Excel数据将采用预定义格式,几乎有42列,42个10个字段中有10个是必填字段,其余字段是条件必填字段。i、 e.如果存在数据,则应采用定义的格式。我还需要验证特殊字符、长度、指定格式等 验证后,我需要将有效数据存储到sql server表中,并为无效数据提供导出到excel功能,以便以相同的excel格式导出,并使用指示符标识无效单元格 有人能建议我以优化的方式做同样的事情吗

我正在寻找通过asp.net web应用程序在Sql server 2000数据库中上载excel数据的最佳做法。Excel数据将采用预定义格式,几乎有42列,42个10个字段中有10个是必填字段,其余字段是条件必填字段。i、 e.如果存在数据,则应采用定义的格式。我还需要验证特殊字符、长度、指定格式等

验证后,我需要将有效数据存储到sql server表中,并为无效数据提供导出到excel功能,以便以相同的excel格式导出,并使用指示符标识无效单元格

有人能建议我以优化的方式做同样的事情吗


谢谢您……

您可以,但您不允许在web服务器上使用Excel COM互操作。而且它肯定不被推荐和支持()

因此,您只有两个选择:

  • 尝试切换到其他格式(XML、CSV)或使用Excel XML格式,您可以使用System.XML或System.XML.Linq进行读写
  • 查找可以读取和写入Excel二进制文件的组件。有商业和开源组件可用

  • net是一个相当不错的库,若你们正在寻找快速高效的东西,而不必自己构建大量的东西,它将为你们做大量的处理。他们有一种将excel文件加载到sql数据库的方法,如您所述。

    您可以使用ADO.NET从电子表格中读取数据,如所述

    将其读入内存,并根据需要解析所有数据。将解析后的数据存储到DataTable中,然后可以使用几种可能的方法将该数据批量持久化到数据库中


    将数据批量加载到SQL Server的最快、最有效的方法是使用SqlBulkCopy。另一种方法是使用SqlDataAdapter。我最近概述了这两种方法,并给出了示例和性能比较。

    哦,天哪,我喜欢人们喜欢将主表放入数据库中。哪个版本的Excel?您正在使用SQL Server 2000;您也在使用Excel 2000吗?这使用COM互操作来插入Excel文件,正如Obalix提到的,Microsoft没有充分的理由推荐这些文件。这一点很有道理——但将excel电子表格上传到sql数据库的整个过程本身并不是一个很好的过程。