내 Gmail에서 .xlsx 첨부 파일을 변환하고 내 드라이브에 Google 스프레드 시트로 저장하는 데 잘 작동하는 것으로 보이는 일련의 Google Apps Script가 있습니다.
불행히도 특정 URL에서 다운로드하려는 .xlsx 파일에 해당 프로세스를 복제 할 운이 없습니다.
코드는 다음과 같습니다.
// Fetch the URL and convert it to a blob
var url = ** URL with the file **;
var response = UrlFetchApp.fetch(url);
var uniqueFeed = Utilities.newBlob(response, "application/vnd.ms-excel", "Unique.xlsx");
var fileToImport = DriveApp.createFile(uniqueFeed);
그러면 내 드라이브에 파일이 생성됩니다. 그러나 그것은 부패했습니다. blob을 문자열로 console.log하면 임의의 정크가 많이 표시됩니다 (예 :
[20-06-29 15 : 35 : 49 : 776 CDT] PK ...! v ? ? [Content_Types] .xml ( U N 0? # ? q ! Ԕ ? $ L M : B MA C $ cg c {2 ^ t ƻJ CQ 6 RH ie J, d W; DKĺ Na 8 ) fldP L5 G ᅬ
.xlsx 파일을 변환하는 코드가 실패합니다. 새로 생성 된 파일이 좋지 않기 때문에 나는 추측하고 있습니다. .xml을 언급하는 이유도 모르겠습니다. URL과 파일은 확실히 .xlsx입니다.
한 가지를 명확히하기 위해 URL에서 내 컴퓨터로 파일을 수동으로 다운로드 한 다음 내 드라이브에 놓으면 문제없이 Google 스프레드 시트로 변환 할 수 있습니다. 나는 수동 단계를 자동화하려고 노력하고 있습니다 ... 따라서 문제.
모든 통찰력을 많이 주시면 감사하겠습니다. 요청에 따라 URL을 PM 할 수 있습니다. 웹 간 떠 다니는 것을 원하지 않습니다.
나는 당신의 목표와 상황을 다음과 같이 믿습니다.
이를 위해이 답변은 어떻습니까?
UrlFetchApp.fetch(url)
HTTPResponse의 객체를 반환합니다. 이 경우 getBlob()
HTTPResponse 개체에서 사용하여 파일 Blob을 직접 검색 할 수 있습니다 .이 점을 스크립트에 반영하면 다음과 같이됩니다.
var response = UrlFetchApp.fetch(url);
var uniqueFeed = Utilities.newBlob(response, "application/vnd.ms-excel", "Unique.xlsx");
에:
var uniqueFeed = UrlFetchApp.fetch(url).getBlob().setName("Unique.xlsx");
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다