Como dividir a tabela do Excel em arquivos CSV em .doc por texto em negrito?

1

Você tem 777 arquivos .doc, em que cada arquivo .doc contém uma grande tabela do Excel, como um aqui e na Fig. 1. Aqui, considere apenas um arquivo .doc. Eu quero dividir a tabela do Excel do arquivo .doc em arquivos CSV por qualquer linguagem de programação Unix e / ou scripts. Não consigo encontrar uma maneira de lidar com formatos de arquivo da Microsoft em arquivos CSV. Pseudocódigo:

  1. Extrai a tabela do Excel do arquivo .doc, que é expandido no thread Como extrair muitos elementos de texto + tabulares .doc CSV por qualquer ferramenta Unix?
  2. Dividir a tabela do Excel (talvez converter aqui já para CSV) em arquivos .CSV separados por regra:

    new bolding indicates a new table i.e. a new CSV file.

  3. Aplique colunas implícitas Localização (parte inferior / superior) e Data (dd.mm.aaaa) nas duas primeiras linhas do arquivo .doc na cada arquivo CSV separado. Use a coluna Hora (manhã / noite / noite).

Arquivos de destino com suas colunas por regra

  1. Assisstants.csv - nome, data, local, hora
  2. Other.Assistants.csv - Nome, data, local, hora
  3. General.csv - Evento, data, local, hora

1 Exemplo de tabela do Excel no arquivo .doc

OS:LinuxDebianStretch9eoutrosDados:arquivo.odt aqui

    
por Léo Léopold Hertz 준영 23.10.2017 / 13:56

1 resposta

1

OK ...

Iniciar o Mini Tutorial

Então, aqui estão algumas dicas sobre como gerar um banco de dados postgresql para importar seus relatórios diários.

Primeiro, instale o postgresql, se ainda não tiver:

$sudo apt-get install postgresql

Segundo, se você não está familiarizado com o postgresql, a instalação padrão do postgresql na Debian é a configuração para permitir que cada usuário faça o login através da autenticação peer sem senha. No entanto, você precisa criar um banco de dados de propriedade do usuário.

Veja como fazer isso:

  • Entre em uma concha privilegiada

    $ sudo -s

  • Torne-se o superusuário do postgres

    # su postgres

  • Crie um banco de dados para o usuário jogar

    postgres$ createdb dbname -O user

  • Em seguida, saia duas vezes para voltar à userland.

    postgres$ exit

    # exit

    $

  • Você deve estar pronto para começar a usar o postgresql

Eu gerou um arquivo SQL que pode ser importado para criar as tabelas. Você pode copiar e colar o seguinte em algo como tables.sql

CREATE TYPE shifts AS ENUM ('morning','evening','night');
CREATE TYPE titles AS ENUM ('assistant','other_assistant');

CREATE TABLE assistants (id integer, name char(20), title titles);
CREATE TABLE disposition (id integer, name char(20), shift shifts, day date, comments text);
CREATE TABLE schedule (id integer, name1 char(2), name2 char(20), name3 char(20), name4 char(20), name5 char(20), shift shifts, day date);

Em seguida, importe as tabelas:

psql
user=>\i tables.sql

Se você analisar seu relatório diário em três arquivos CSV separados, cada arquivo poderá ser importado diretamente para cada tabela individual usando o comando \ copy.

Algo parecido com isto:

\copy assistants FROM '~/assistants.csv' WITH (FORMAT csv);
\copy dispositions FROM '~/dispositions.csv' WITH (FORMAT csv);
\copy schedule FROM '~/schedule.csv' WITH (FORMAT csv);

Isso preencheria suas tabelas com dados e permitiria que você realizasse consultas como descobrir quem fez os comentários hoje e quais foram ...

Algo parecido com isto:

 select * from disposition where day = 'TODAY';

Pode produzir a seguinte saída:

 id |         name         |  shift  |    day     | comments 
----+----------------------+---------+------------+----------
    | Vir                  | morning | 2017-10-23 | Peaceful

End Mini Tutorial

Algum disto é útil? Ou estou pensando muito profundamente ou apenas confundindo você?

    
por 23.10.2017 / 21:20