【gas】gmail 첨부 파일을 드라이브에 저장, 업데이트
8389 단어 googleGoogleSpreadSheetgas
1. 소개
방문해 주셔서 감사합니다.
이번에는 업무로 메일의 PDF를 꺼내 그 파일을 중복하지 않도록
google 드라이브에 올리고 싶다고 생각 gas를 사용하여 구현해 보았습니다.
2. 소스 코드
먼저 완제품 소스 코드를 참조하십시오.
//定数
var SEARCH_TERM = 'subject:(○○○○) '; //検索条件(件名で検索の場合)
var FOLDER = DriveApp.getFolderById('○○○○'); //保存するフォルダ(Googledrive上のURL”folders/”以下)
//メイン(メールから添付ファイルを取得)
function fetchFile(){
var myThreads = GmailApp.search(SEARCH_TERM, 0, 30); //条件にマッチしたスレッドを検索して取得(0~30件まで)
var myMessages = GmailApp.getMessagesForThreads(myThreads); //スレッドからメールを取得し二次元配列で格納
var attachments = myMessages[0][0].getAttachments(); //添付ファイルを取得
Logger.log(myMessages[0][0].getSubject()); //取得メールの件名表示
updateFile(attachments) //ファイル置き換え
}
//フォルダの中に入ってるファイルの名前を取得
function getFileNames(){
var files = FOLDER.getFiles();
var fileNames = []
var count = 0
while (files.hasNext()) {
fileNames[count] = files.next()
count++
}
return fileNames
}
//フォルダにあるファイル名が添付ファイル名と同じとき更新
function updateFile(attachments){
var fileNames = getFileNames()
for(var i in attachments){
for(var j in fileNames){
//ドライブにすでに同じ名前のファイルがあるか?
if(attachments[i].getName() == fileNames[j]){
var files = DriveApp.getFilesByName(fileNames[j])
//重複ファイルを削除
if (files.hasNext()) {
var file = files.next()
file.setTrashed(true)
Logger.log(file.getName()) //削除したファイル名表示
}
}
}
FOLDER.createFile(attachments[i]) //ドライブに添付ファイルを保存
}
}
3. 코드 해설·보충
블록마다 해설과 보충 설명해 갑니다.
3-1. 상수
var SEARCH_TERM = 'subject:(○○○○)';
검색 조건의 설정입니다.이번 프로그램에서는 원하는 PDF의 첨부된 메일은 같은 주제로 보내지기 때문에
제목으로 검색 중입니다.
'○○○○' 부분은 부분 검색이므로 예를 들어 월급 명세서의 알림
「○○월의 급여 명세서」라는 건명으로 보내지는 경우 'subject:(월의 급여 명세서)'라고 지정해 두면
제대로 얻을 수 있다고 생각합니다.
var FOLDER = DriveApp.getFolderById('○○○○');
'○○○○' 부분은 저장하고 싶은 폴더를 연 상태의 folders/이하의 문자열이 됩니다.【참고 이미지】
3-2. 메인
메인에 대해서 참고 사이트의 것을 개변시켜 사용하고 있습니다.
변경한 것은 메일의 읽기 부분으로, 참고 사이트의 것이라면 30건분 안에 복수 검색 조건에
적합하는 메일이 있었을 경우, 복수 읽어들이게 되어 있습니다만, 이번은 갱신해 가고 싶기 때문에,
최신의 것만 사용하도록 myMessages[0][0]이라고 지정하고 있습니다.
3-3. 폴더 안에 들어 있는 파일의 이름을 취득
여기에 대해서는 이름대로입니다만, 최초로 지정한 폴더에 들어 있다
파일명을 모두 취득해 반환합니다.
3-4. 폴더에 있는 파일명이 첨부파일명과 같을 때 갱신
3-3에서 얻은 파일명과 첨부파일의 파일명을 비교하여
중복 파일이 있는 경우 해당 파일을 삭제하고 첨부 파일을 저장합니다.
4. 참고문헌
5. 결론
사실은 얻은 PDF를 Excel로 변환하여 google 드라이브에 저장하기를 원했습니다.
PDF에 쓰여진 테이블이 궁합이 나쁜지 변환의 정밀도가 나쁘고, PDFXchangeeditor로 수동 변환에
침착했습니다.
누군가 자세한 분, 뭔가 지혜가 있으면 댓글을 주시면 기쁩니다!
마지막으로 기사를 읽어 주셔서 감사합니다.
Reference
이 문제에 관하여(【gas】gmail 첨부 파일을 드라이브에 저장, 업데이트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/chuo2110/items/cb394bba06b6883b44c9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)