如何将word文档转换为PostgreSQL表

时间:2012-11-06 01:18:10

标签: postgresql ms-word etl

我有一个包含数据字典的word文档。

例如,名为FUEL的变量描述如下:

FUEL -- What type of fuel does it take?  
    1   Gas  
    2   Diesel  
    3   Hybrid  
    4   Flex fuel  
    7   OTHER, SPECIFY

我想将文档转换为PostgreSQL表。你有什么建议吗?

1 个答案:

答案 0 :(得分:2)

一般来说,这类事情需要两个阶段:第一,使用文本处理工具和脚本,或者像Excel这样的东西,将数据按照一个理智的表格格式。

获得表格格式后,将数据输出为CSV(例如,使用Excel中的另存为)并在运行后使用COPY命令或psql的\copy将其加载到PostgreSQL中适当的CREATE TABLE命令,用于定义与CSV结构匹配的表结构。

编辑:鉴于更新的帖子,我想你可能必须为此编写一个简单的解析器,除非文档包含内部结构化标记。将文档另存为纯文本。现在用Perl或Python等语言编写一个脚本,查找定义变量的标题,从该行中提取大写变量名称和描述,然后读取编号选项,直到它用完并准备读取下一个变量。如果文档是统一的结构,那么只需要几行代码和一些基本的正则表达式;你甚至可以在awk中做到这一点。让脚本编写CSV以备稍后导入,或使用DBD::Pg(Perl)或psycopg2(Python)等数据库接口直接存储数据。

如果您不了解任何脚本工具,则需要学习或擅长复制和粘贴。