从 Excel 导入数据 [关闭]

Posted

技术标签:

【中文标题】从 Excel 导入数据 [关闭]【英文标题】:Import data from Excel [closed] 【发布时间】:2011-02-20 19:36:43 【问题描述】:

我想将 Excel 中的数据导入 Delphi 7 上的 Paradox 数据库。

如何使用 Delphi 做到这一点?

【问题讨论】:

这里没有问题。这是一个声明。抱歉,我不得不投票结束。 不需要 Delphi。确保您已安装 Paradox ODBC 驱动程序,然后从 Excel 中连接到它们。奇迹般有效;有关您可以使用的各种 ODBC 驱动程序的更多信息,请参见 [此处][1]。 --jeroen [1]:dbforums.com/corel-paradox/… +1;投票重新开放。即使将问题表述为陈述,我认为 OP 想要什么也很清楚。 +1 投票支持重新开放。来吧,问题很明显,所以我添加了它。我们要帮助新用户吗? @gbrandt 没关系,发帖人并没有试图编辑问题以使其清楚。这是一个有 8 个现有问题的用户。我们不是在谈论新用户。 【参考方案1】:

好吧,如果您有标记为 Delphi 7 的问题,我假设您有 BDE。这将使您能够在 Delphi 中完成整个过程。

您可以修改和使用这个未经测试的代码(您需要添加异常处理):

procedure TForm1.Button2Click(Sender: TObject);
var
  Cols: integer;
  Rows: integer;
  IntCellValue: integer;
  Excel, XLSheet: Variant;
  failure: Integer;

begin
  failure:=0;
  try
    Excel:=CreateOleObject('Excel.Application');
  except
    failure:=1;
  end;
  if failure = 0 then
  begin
    Excel.Visible:=False;
    Excel.WorkBooks.Open(<Excell_Filename>);
    XLSheet := Excel.Worksheets[1];
    Cols := XLSheet.UsedRange.Columns.Count;
    Rows := XLSheet.UsedRange.Rows.Count;

    // Value of the 1st Cell
    IntCellValue:=Excel.Cells[1, 1].Value;
    // Iterate Cals/Rows to read the data section in your worksheet
    // and you can write it in Paradox using the BDE by iterating all cells
    // somthing like this pseudo code:

      try            
        Query := TQuery.Create(nil)            
        Query .Databasename := PdxDBName; // must be configured in the BDE
        while Rows > 0
        begin
          while Cols > 0
          begin
            IntCellValue:=Excel.Cells[Cols,Rows].Value;
            Query .SQL.text := // SQLStmt including the IntCellValue
            ExecSQL;
            dec(Cols);               
          end;
          Cols := XLSheet.UsedRange.Columns.Count;
        Dec(Rows);
        end;
      finally
        Query.Free;
      end;

    Excel.Workbooks.Close;
    Excel.Quit;
    Excel:=Unassigned;
  end;
end;

【讨论】:

我尝试读取 xlsx 文件。在 XLSheet := Excel.Worksheets[1] 行,它会引发异常,并显示消息“OLE 错误 800A03EC”。任何想法为什么会发生这种情况?【参考方案2】:

Excel 中的 CSV 然后将 CSV 导入 Paradox DB 呢? 您也可以尝试从 Excel 导出 XML,然后以编程方式将 XML 加载到 Padox DB 中。

【讨论】:

【参考方案3】:

使用 Delphi 7 中的 OLEDB Provider 和 ADO 组件来实现这一点。 它应该很简单,您可以通过 SQL 查询使用 Excel 查询。

使用TADO组件获取数据,然后使用BDETQuery等组件将数据导入Paradox表。

【讨论】:

请不要在您的答案中添加“标语”,如果人们感兴趣,您的个人资料(您已经发现)上有一个地方可以放置您的 URL。【参考方案4】:

这个工具SMImport 说它可以做到。虽然他们要 50 美元,但您可以下载免费试用版。

【讨论】:

以上是关于从 Excel 导入数据 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

强制excel停止对csv导入数据应用“自动更正”[关闭]

如何将 Excel 文件导入 SQL Server? [关闭]

通过 Rails 将 SQL 文件或 Excel 文件中的数据导入数据库 [关闭]

将Excel工作表数据导入Sharepoint列表的工具[关闭]

Matlab如何导入excel数据

从 MS Access 批量导入并插入 Sql Server [关闭]