Excel 테이블을 굵은 텍스트로 .doc의 CSV 파일로 분할하는 방법은 무엇입니까?

Excel 테이블을 굵은 텍스트로 .doc의 CSV 파일로 분할하는 방법은 무엇입니까?

777개의 .doc 파일이 있고 각 파일에는 다음과 같은 큰 Excel 테이블이 포함되어 있습니다.여기그림 1과 같습니다. 여기서는 하나의 .doc 파일만 고려됩니다. .doc 파일의 Excel 테이블을 Unix 프로그래밍 언어 및/또는 스크립트를 통해 CSV 파일로 나누고 싶습니다. Microsoft 파일 형식을 CSV 파일로 처리하는 방법을 찾을 수 없습니다. 의사코드:

  1. 스레드에서 확장된 .doc 파일에서 Excel 테이블 추출Unix 도구를 사용하여 많은 .doc 텍스트 + 테이블 요소를 CSV로 추출하는 방법은 무엇입니까?
  2. Excel 테이블(여기서는 CSV로 변환되었을 수 있음)을 규칙에 따라 별도의 .CSV 파일로 분할합니다.

    새로운 굵은 글씨는 새 테이블을 나타냅니다.새로운 CSV 파일입니다.

  3. 암시적 열 적용장소(하단/상단) 및날짜(dd.mm.yyyy)는 각 개별 CSV 파일에 대한 .doc 파일의 처음 두 줄에 있습니다. 사용시간열(아침/저녁/저녁).

규칙별로 대상 파일과 해당 열 찾기

  1. Assistants.csv - 이름, 날짜, 위치, 시간
  2. Other.Assistants.csv - 이름, 날짜, 위치, 시간
  3. General.csv - 이벤트, 날짜, 위치, 시간

그림 1 .doc 파일의 Excel 테이블 예

여기에 이미지 설명을 입력하세요.

운영 체제: Linux Debian Stretch 9 등
데이터: .odt 파일여기

답변1

좋아요...


미니 튜토리얼 시작


따라서 일일 보고서를 가져오기 위해 postgresql 데이터베이스를 생성하는 방법에 대한 몇 가지 팁은 다음과 같습니다.

먼저, 아직 postgresql을 설치하지 않은 경우:

$sudo apt-get install postgresql

둘째, postgresql을 처음 사용하는 경우 Debian의 postgresql 기본 설치는 모든 사용자가 피어 인증을 통해 비밀번호 없이 로그인할 수 있도록 설정됩니다. 그러나 사용자가 소유한 데이터베이스를 생성해야 합니다.

수행 방법은 다음과 같습니다.

  • 권한 있는 쉘을 입력하세요

    $ sudo -s

  • 포스트그레스 슈퍼유저 되기

    #수포스트

  • 사용자가 가지고 놀 수 있는 데이터베이스 만들기

    postgres$ createb 데이터베이스 이름 -O 사용자

  • 그런 다음 두 번 종료하여 사용자 모드로 돌아갑니다.

    포스트그레스$ 종료

    #출구

    $

  • postgresql을 사용할 준비가 되어 있어야 합니다.

테이블을 만들기 위해 가져올 수 있는 SQL 파일을 생성했습니다. 다음을 복사하여 비슷한 곳에 붙여넣을 수 있습니다.table.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);

그런 다음 테이블을 가져옵니다.

psql
user=>\i tables.sql

일일 보고서를 세 개의 개별 CSV 파일로 구문 분석하는 경우 \copy 명령을 사용하여 각 파일을 각 개별 테이블로 직접 가져올 수 있습니다.

이 같은:

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

이렇게 하면 테이블에 데이터가 채워지고 오늘 댓글을 남긴 사람이 누구인지, 그 댓글이 무엇인지 알아내는 등의 쿼리를 수행할 수 있습니다.

이 같은:

 select * from disposition where day = 'TODAY';

다음과 같은 출력이 생성될 수 있습니다.

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

미니 튜토리얼 끝


도움이 되나요? 아니면 내가 너무 깊이 생각하고 있거나 당신을 혼란스럽게 하고 있는 걸까요?

관련 정보