GAS(구글 AppScript)에서docx를 GDoc로 변환하는 방법

※ 본 기사는 https://tanigon.dev/2021/09/07/gas-1/의 교차 우체통입니다.
예를 들어 form 등에서 업로드하거나 Google Drive에서 연 파일이 Microsoft Word 형식(.docx 형식)일 때 Google Doc로 변환하는 방법에 대해 설명합니다.

Blob 변환 오류


처음에는 대개 이런 일을 고려했지만, 이것은 순조롭지 못했다.
word에서 Google Docs로 변환할 수 없습니다.
겸사겸사 말씀드리겠습니다.
  • OPENDOCUMENT_TEXT: 변환 불가
  • PLAIN_TEXT: 변환 불가
  • PDF : OK!
  • 그러나 PDF를 만든 후 PLAINTEXT가 만든 게 아니어서 결과는 똑같아요
  • Google Drive에 저장만 해도 안 열려요.


    Google Drive에 저장됩니다. 예를 들어 브라우저에서 주석 docx 이 있는 물건을 열면 되지 않습니까?이러면 안되지.
    const blob = file.getBlob();  // これが、Microsoft Word(.docx)形式のblobだとする
    blob.getAs(MimeType.GOOGLE_DOCS); // ここで「変換できない」エラー
    
    DocumentApp.openById에서는 docx 드라이브의 파일을 열 수 없습니다.

    DriveV2 API를 사용하여 파일 변환을 명시적으로 수행하면 됩니다!


    최종적으로 다음과 같이 드라이브에 저장하는 단계에서 GDoc로 저장하기 때문에 DocumentApp에서도 열 수 있습니다.
    const blob = file.getBlob();
    const new_file = DriveApp.getFolderById(...).createFile(blob);  // 作れるのは作れる
    DocumentApp.openById(new_file.getId());   // 開けませんエラー
    
    { convert: true }는 키모다.또한 폴더를 잘 지정하려면 첫 번째 인자의 산열parents: [{id: "KOKONI_ID_GA_HAIRU"}]에 parents 지정을 더하면 OK입니다.

    Drive가 undefined 오류인 경우


    Gas가 실행될 때 "Drive"를 찾을 수 없는 오류가 발생할 수 있습니다.
    이렇게 하면 Apps Script 화면에서 편집기 - 서비스에 드라이브 V2 API를 추가하면 됩니다.결과적으로 다음과 같은 화면으로 바뀌면 문제가 없다(반대로 바뀌지 않으면 오류가 발생할 수 있다).

    좋은 웹페이지 즐겨찾기