SQL Server:一种将Excel表格呈现到SQL Server中的方法

本文关键字:Server SQL 方法 表格 一种 Excel | 更新日期: 2023-09-27 17:56:33

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

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

我的问题是关于上传的 - 有人知道如何做吗?你做过类似的事情吗?我应该做这样的事情(请参阅我前段时间写的一篇文章中的代码 - http://www.vitoshacademy.com/mssql-import-data-from-excel-to-sql-server-with-vba - 如果这被认为是垃圾邮件,我会删除它)还是有更高级的方法可以做到这一点?

粗略地说,这些是我的问题:

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

    3.1. 创建一个表格专业Excel文件;
    3.2. 读取 Excel 文件的标题,
    3.3. 用它们创建列并填充数据。

还是别的什么?我对出色的性能不感兴趣,长达 5 秒的等待时间是相当好的。

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

谢谢!

SQL Server:一种将Excel表格呈现到SQL Server中的方法

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

为什么要从数据库"下载文件"以更改内容,然后重新上传它们?这违背了数据库的全部目的...

我建议你只在数据库中工作,并通过适当的SQL语句编辑数据,或者,如果你对此感到不舒服,使用SQL Developer或SQL Server Management Studio等工具。

我应该注意什么?

混合Excel和数据库。它们有不同的目的和可能性,应相应地使用。

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

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

创建一个表格专业Excel文件;

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

若要打开文件,请使用 VBA 中的 Workbooks.Open 方法。将工作簿分配给对象,以便可以更轻松地使用它。通过这种方式,您将可以访问其所有属性和数据。 使用这些语句来创建CREATE TABLE [...] SQL 语句。此语句将创建您的表。

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

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

读取 Excel 文件的标题

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

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

创建

列也是创建表的一部分。用内容填充表格的工作方式可能相当相似。

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


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