C# SQL Server:将Excel表显示到SQL Server中的一种方法

C# SQL Server:将Excel表显示到SQL Server中的一种方法,c#,sql-server,vba,excel,C#,Sql Server,Vba,Excel,我有50个不同大小、列和行的Excel文件。大约400行和70列各(+-20%)。列的命名方式不同,行的命名方式也不同 我正在寻找一种方法,将所有这些乐趣转移到SQL Server中,并在那里做一些事情。例如,我想将文件从SQL Server下载到Excel,进行更改(甚至在行的标题中)并将其上载回。使用VBA或C# 我的问题是关于上传-有人知道怎么做吗?你做过类似的事情吗?我应该这样做(参见我不久前写的一篇文章中的代码——如果这被认为是垃圾邮件,我将删除它),还是有更高级的方法来做 大致来说,

我有50个不同大小、列和行的Excel文件。大约400行和70列各(+-20%)。列的命名方式不同,行的命名方式也不同

我正在寻找一种方法,将所有这些乐趣转移到SQL Server中,并在那里做一些事情。例如,我想将文件从SQL Server下载到Excel,进行更改(甚至在行的标题中)并将其上载回。使用VBA或C#

我的问题是关于上传-有人知道怎么做吗?你做过类似的事情吗?我应该这样做(参见我不久前写的一篇文章中的代码——如果这被认为是垃圾邮件,我将删除它),还是有更高级的方法来做

大致来说,我的问题如下:

  • 我应该注意什么
  • 我应该尽量避免哪些可能的错误
  • 如果你有这样的任务,你会怎么做?例如:

    3.1。创建表格pro-Excel文件
    3.2. 读取Excel文件的标题,
    3.3. 使用它们创建列并填充数据

  • 还是别的什么?我对出色的性能不感兴趣,最多5秒的等待时间是可以的

    我知道这个问题太宽泛了等等,但如果有任何想法,我们将不胜感激

    谢谢

    我正在寻找一种方法,将所有这些乐趣转移到SQL Server中,并在那里做一些事情。例如,我想将文件从SQL Server下载到Excel,进行更改(甚至在行的标题中)并将其上载回。使用VBA或C#

    为什么要从数据库“下载文件”来更改内容,然后重新加载?这违背了数据库的全部目的

    我建议您只在数据库中工作,并通过适当的SQL语句编辑数据,或者,如果您对此不满意,可以使用SQL Developer或SQL Server Management Studio之类的工具

    我应该注意什么

    把Excel和数据库混在一起。它们有不同的用途和可能性,应相应地使用

    我应该尽量避免哪些可能的错误

    见上文。检查Excel工作表中的数据,如果将其插入到数据库中,可能会因为特殊/保留字符而需要转义。为数据库列选择匹配的数据类型。利用约束强制执行一定级别的数据质量。还有很多,如果您对数据库完全陌生,这可能是一个好的开始(我相信还有很多其他教程,请确保理解基本概念):

    创建表格pro-Excel文件

    使用for循环遍历所有文件。如果它们都在同一个文件夹中,那么应该很简单,如果它们分布在整个系统中,那么您需要有一个包含所有文件路径的配置表,或者您需要考虑是否有其他逻辑来识别PC上的相关文件

    要打开文件,请使用VBA中的
    工作簿.open
    方法。将工作簿指定给对象,以便您可以更轻松地使用它。这样您就可以访问它的所有属性和数据。使用这些命令创建
    createtable[…]
    SQL语句。此语句将创建您的表

    连接到数据库并通过
    ADODB.Connection
    对象执行所述语句

    for循环将对所有Excel文件执行此操作,因此每个Excel文件都有一个数据库表

    读取Excel文件的标题

    这将是上述步骤的一部分,因为您很可能需要标题信息来创建表(定义列等)。如果“标题”包含工作表中的第一行,则可以使用VBA中的
    工作表.Cells
    工作表.Range
    属性获取内容

    使用它们创建列并填充数据

    创建列也是创建表的一部分。用内容填充表格也可以起到类似的作用

    使用for循环遍历每一行,为每一行创建一个
    INSERT-INTO[…]
    SQL语句,然后执行它(或者如果您可以创建一个数组来存储所有INSERT语句并批量执行它们。我更喜欢这样做,但它比简单地创建一个语句并立即执行它更高级)。别忘了承诺


    如果你有任何具体问题,请毫不犹豫地提出。我希望这有助于为您的项目建立框架。如果您在尝试实现整个过程的某些方面时遇到了麻烦,那么很可能在StackOverflow或Google上的某个地方也有一个现有的解决方案。我认为使用VBA,我从未遇到过以前从未做过的任何事情,有大量资源可用于获取特定问题的代码片段

    我正在寻找一种方法,将所有这些乐趣转移到SQL Server中,并在那里做一些事情。例如,我想将文件从SQL Server下载到Excel,进行更改(甚至在行的标题中)并将其上载回。使用VBA或C#

    为什么要从数据库“下载文件”来更改内容,然后重新加载?这违背了数据库的全部目的

    我建议您只在数据库中工作,并通过适当的SQL语句编辑数据,或者,如果您对此不满意,可以使用SQL Developer或SQL Server Management Studio之类的工具

    我应该注意什么

    把Excel和数据库混在一起。它们有不同的用途和可能性,应相应地使用

    我应该尽量避免哪些可能的错误

    见上文。检查Excel工作表中的数据,如果将其插入到数据库中,可能会因为特殊/保留字符而需要转义。为数据库列选择匹配的数据类型。利用约束