Как читать документ Word в Postgresql - PullRequest
0 голосов
/ 02 февраля 2020

Я новичок в этом материале, не уверен, что это может быть достигнуто, я ожидаю пачку текстовых документов ежедневно, которые (структурированные данные) мне нужно обработать и сохранить их значения в моем POSTGRES. Я искал по inte rnet, все, что я смог найти, - это сохранить документ Word в формате Blob, Bytea, выполнить кодирование, декодирование и т. Д. c, который снова возвращает текст, который я не могу обработать. Можно ли этого достичь, если да, можете ли вы предоставить пример кода, который может подсчитывать слова / символы / строки в текстовом документе, я могу расширить это в соответствии со своими потребностями и требованиями. Я использую Ubuntu на AWS,

show server_encoding;
UTF8

Я пробовал ниже

pg_read_file('/var/lib/postgresql/docs/testDoc.docx');
pg_read_binary_file('/var/lib/postgresql/docs/testDoc.docx')
encode(pg_read_binary_file('/var/lib/postgresql/docs/testDoc.docx'),'base64')
decode(encode(pg_read_binary_file('/var/lib/postgresql/docs/testDoc.docx'),'base64'),'base64')::text;

С уважением, Бхарат

Ответы [ 2 ]

0 голосов
/ 03 февраля 2020

Одним из вариантов является использование некоторого языка интерфейса для чтения файлов docx и загрузки их в Postgres.

В Ruby вы можете:

Установить гем docx и pg .

gem install docx pg

и затем создайте что-то вроде ruby файла:

require 'docx'
require 'pg'

doc = Docx::Document.open('document.docx')
conn = PG.connect( dbname: 'postgres_db', user: 'username', password: 'password' )

doc.paragraphs.each do |p|
  conn.exec( "INSERT INTO table paragraphs (paragraph) VALUES ( $1 )", [ p ] )
end

Я уверен, что это можно сделать на Python или на любом другом языке, который вы знаете лучше.

0 голосов
/ 02 февраля 2020

Вы можете оформить Открыть XML библиотеку от Microsoft.
Это библиотека OSS на основе Frameowrk. NET, которая отображает офисные документы как объекты.
С этой библиотекой вы можете например, создайте программу, которая извлекает информацию и отправляет данные в вашу PostgreSQL.
библиотеку Tis, которая также доступна для. NET Базовой платформы, так что вы можете создавать программы, которые можно запускать и в Ubuntu . NET Базовая библиотека в NUGET .

Другой способ - написать программу Java. Та же концепция.
В Java вы можете использовать Apache Библиотека POI для чтения офисных документов.

Помните, что офисный документ представляет собой сжатый файл (с алгоритмом ZIP), который содержит XML данные, представляющие документ.

...