【问题标题】:Merge Number of Excel Files and load to SQL Database合并 Excel 文件数并加载到 SQL 数据库
【发布时间】:2014-04-30 09:21:30
【问题描述】:

我正在尝试合并多个文件。大约 40,000 个格式完全相同的 excel 文件(列等)。

我尝试通过 CMD 运行合并命令,该命令已将它们合并到一个点,但它合并到的 CSV 文件由于其大小而无法打开。

我试图找出合并如此大量文件的最佳过程,然后将它们加载到 SQL Server 中的过程。

是否有任何工具或东西可能需要定制和构建?

【问题讨论】:

    标签: sql-server merge


    【解决方案1】:

    我不知道这方面的工具,但我的第一个想法是,假设您对 Transact SQL 有经验:

    • 打开命令外壳,切换到存储 Excel 文件的文件夹并输入以下命令:dir *.xlsx /b > source.txt

    这将创建一个名为“source.txt”的文本文件,其中包含所有 Excel 文件的名称(并且只有名称)

    • 将此文件导入 SQL Server 表中,即称为“源文件”

    • 创建一个包含游标的新存储过程。光标应该逐行读取您的表“源文件”,并将实际读取的 Excel 文件的名称存储在一个变量中,即称为“@FileName”

    • 在这个循环中,对每个读取的 Excel 文件执行这样的 sql 语句:

      SELECT * INTO dbo.YourDatabaseTable
      FROM   OPENROWSET('Microsoft.ACE.OLEDB.12.0',
      'Excel 12.0 Xml;HDR=YES;Database=@FileName',
      'SELECT * FROM [YourWorkSheet$]')
      
    • 让光标读取下一行

    用您的需要替换“YourDataseTable”和“YourWorkSheet”。

    @FileName 必须包含 Excel 文件的完整路径。

    也许你必须在执行 sql 命令之前下载 Microsoft.ACE.OLEDB.12.0-Provider。

    希望,这有助于您考虑进一步的步骤

    迈克尔

    编辑:在this 网站上查看可能的错误

    【讨论】:

      猜你喜欢
      • 2018-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-17
      相关资源
      最近更新 更多