C# SQL Server:将Excel表显示到SQL Server中的一种方法
我有50个不同大小、列和行的Excel文件。大约400行和70列各(+-20%)。列的命名方式不同,行的命名方式也不同 我正在寻找一种方法,将所有这些乐趣转移到SQL Server中,并在那里做一些事情。例如,我想将文件从SQL Server下载到Excel,进行更改(甚至在行的标题中)并将其上载回。使用VBA或C# 我的问题是关于上传-有人知道怎么做吗?你做过类似的事情吗?我应该这样做(参见我不久前写的一篇文章中的代码——如果这被认为是垃圾邮件,我将删除它),还是有更高级的方法来做 大致来说,我的问题如下: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# 我的问题是关于上传-有人知道怎么做吗?你做过类似的事情吗?我应该这样做(参见我不久前写的一篇文章中的代码——如果这被认为是垃圾邮件,我将删除它),还是有更高级的方法来做 大致来说,
3.2. 读取Excel文件的标题,
3.3. 使用它们创建列并填充数据
工作簿.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工作表中的数据,如果将其插入到数据库中,可能会因为特殊/保留字符而需要转义。为数据库列选择匹配的数据类型。利用约束