【问题标题】:Writing to a text file from a TFDMemTable从 TFDMemTable 写入文本文件
【发布时间】:2018-02-16 15:06:14
【问题描述】:

我需要将TFDMemTable 的内容写入文本文件,以便稍后导入 Excel。有没有办法做到这一点?

【问题讨论】:

  • 将数据写入 CSV 文件,然后将其加载到 Excel 中。
  • 您不想直接将数据导出到 Excel(使用 ODBC 驱动程序)吗?如果没有,那么@MartynA 建议的方式是(您可以使用TFDBatchMoveTFDBatchMoveTextWriter)。
  • TFDMemTable.SaveToFile() 可以保存为 XML 或 JSON 格式。 Excel 可以导入 XML,并且有第 3 方 JSON 到 CSV 转换器可用。否则,您将不得不遍历表记录手动将每条记录以您想要的任何格式写入文件,例如TStreamWriter
  • @Remy,您不必执行这些额外步骤。 FireDAC 优化了在 TFDBatchMove 组件中实现的导出的使用。
  • 所以我使用 TKBMCSVSTREAMFORMAT 并且我在这一行收到错误:Inventory.mInventoryCount.SaveToFile('Inventory');如何指定文件类型?

标签: excel delphi text fdmemtable


【解决方案1】:

借助 FireDAC,您可以将TFDBatchMove 组件与TFDBatchMoveDataSetReader 一起用作ReaderTFDBatchMoveTextWriter 作为Writer。因此,您可以使用带有上述组件的 ODBC 驱动程序将数据复制到 Excel DBMS。

TFDBatchMove 组件针对性能进行了优化,我个人建议在您需要将数据从一个数据源复制到另一个数据源时使用它,包括这种情况,因为您可以灵活地指定格式、字段映射和其他内容。

【讨论】:

  • 所以我取得了一些成功,我发现了访问冲突的来源,由于某种原因,如果使用第三方 memtable 组件,一切都可以正常读取和写入 .csv 文件。如果我出于某种原因使用 TFDMemtable 组件,它无法访问它。
  • 很抱歉,如果不知道发生了什么(或知道您的代码),我无法提供帮助 :-) 只需调试您的应用程序,让访问冲突异常引发并检查调用堆栈以找出问题的根源。
猜你喜欢
  • 1970-01-01
  • 2017-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多