[Google Sheet] Download File trong Email và lưu vào đường dẫn

Liên hệ QC

robinhsoon

Thành viên hoạt động
Tham gia
19/1/16
Bài viết
153
Được thích
11
Thân chào cả nhà GPEX!
Hiện tại em có một bài tập, nhưng tìm hoài không có cách nào làm được ạ.

Công việc thường ngày của em là nhận khoảng hơn 50 mail của các Khách Hàng khác nhau và hàng ngày phải download từng File đính kèm trong các Mail đó về các đường dẫn tương ứng.

Em có 01 File Google Sheet Theo Template:
EmailĐường dẫn lưu Filetình trạng
robin@gmail.comC:\Users\Downloads\Folder 1Đã lưu
robin2@gmail.comC:\Users\Downloads\Folder 2không có file đính kèm
robin3@gmail.comC:\Users\Downloads\Folder 3Đã lưu
robin4@gmail.comC:\Users\Downloads\Folder 4Đã lưu
Em muốn dùng macro trong Google sheet để tự download các Email chưa đọc trong danh sách cột Email và lưu vào đường dẫn tương ứng ở cột B (Đường dẫn lữu File). Nếu được thì có thể note luôn giúp em tình trạng luôn ạ.


Mong cả nhà giúp đỡ em, Em chân thành cảm ơn ạ..
 
sao phải down về lưu vậy bạn? Đang dùng gmail hả?
 
Các kết quả trên gsearch có khá nhiều

Tuy nhiên mình không khuyến cáo bạn đi theo hướng đó, nguyên nhân vì gmail định dạng html (nghĩa là ảnh có thể được đặt dưới dạng preview web / hoặc attachment). các file media khác thì không vấn đề gì nhưng nếu là ảnh, sẽ phát sinh nhu cầu phân định rõ: ảnh attachment hay ảnh trong chữ ký (signature).
Theo ý kiến cá nhân thì bạn nên hướng khách hàng đến việc sử dụng Gform với một format rõ ràng, có đủ textbox để họ mô tả thông tin như mail body - dù giao diện không thân thiện lắm - song lợi thế lớn chính là tổng hợp file về một chỗ, khi đó áp script trên gspreadsheet hoặc gform đều được.

Note: Bạn phải cài Google Backup & Synch và để load file về local drive - không dùng file streaming (business account) nhé.
 
Các kết quả trên gsearch có khá nhiều

Tuy nhiên mình không khuyến cáo bạn đi theo hướng đó, nguyên nhân vì gmail định dạng html (nghĩa là ảnh có thể được đặt dưới dạng preview web / hoặc attachment). các file media khác thì không vấn đề gì nhưng nếu là ảnh, sẽ phát sinh nhu cầu phân định rõ: ảnh attachment hay ảnh trong chữ ký (signature).
Theo ý kiến cá nhân thì bạn nên hướng khách hàng đến việc sử dụng Gform với một format rõ ràng, có đủ textbox để họ mô tả thông tin như mail body - dù giao diện không thân thiện lắm - song lợi thế lớn chính là tổng hợp file về một chỗ, khi đó áp script trên gspreadsheet hoặc gform đều được.

Note: Bạn phải cài Google Backup & Synch và để load file về local drive - không dùng file streaming (business account) nhé.
Cảm ơn Anh đã quan tâm đến bài viết của em ạ, Hiện tại em chỉ cần download các File định dạng Excel thôi, các File media khác không cần ạ nên việc phát sinh nhu cầu phân định rõ thì không cần thiết.
Nếu muốn khách Hàng từ Gmail chuyển sang google Form để dùng thì em nghĩ hơi khó, vì họ thích dùng cách truyền thống hơn là phải thay đổi, bên em cũng hướng họ thay đổi theo nhiều cách rồi nhưng không thành công, nên em mới dùng tới giải pháp này ạ.
Những cách trên google em cũng tham khảo rồi, nhưng không biết sửa code thế nào ..!
Nếu được làm phiền Anh giúp đỡ, Em chân thành cảm ơn ạ.
 
@chủ thớt: Thấy hơi khó hiểu chút. Bạn dùng Google Sheets thì sao lại tải file về lưu trên ổ đĩa của máy tính?
Google Sheets tức là làm việc online, vậy tải file lưu về Google Drive mới hợp lý chứ nhỉ?
 
Hiện tại em chỉ cần download các File định dạng Excel thôi,

Mình sẽ xem giùm.
Có một điểm cần kiểm chứng kỹ: attachment là *.xls và *.xlsx (MS excel bản offline) thôi, hay có cả bản Online cùng làm trên Gdrive nhé - vì bản chất là Gspreadsheet không phải 1 file, nó làm trên môi trường online của Google, không chiếm dung lượng và có khả năng convert về dạng của Microsoft/ Open office. Nếu KH gửi Link dạng GS online thì (có thể) sẽ mất một bước convert định dạng.
 
vì bản chất là Gspreadsheet không phải 1 file, nó làm trên môi trường online của Google, không chiếm dung lượng
Chỗ này không đúng tẹo nào, bạn tìm hiểu lại nhé.
Nó là 1 file hoàn chỉnh, được lưu trên hệ thống ổ đĩa lưu trữ của Google (có thể là hệ thống của Google xây dựng hoặc của các nhà cung cấp dịch vụ lưu trữ mà Google thuê), được quản lý bằng nền tảng Google Drive. Còn Google Sheets là phần mềm nền tảng Web có khả năng xử lý tập tin kia.
 
Mình sẽ xem giùm.
Có một điểm cần kiểm chứng kỹ: attachment là *.xls và *.xlsx (MS excel bản offline) thôi, hay có cả bản Online cùng làm trên Gdrive nhé - vì bản chất là Gspreadsheet không phải 1 file, nó làm trên môi trường online của Google, không chiếm dung lượng và có khả năng convert về dạng của Microsoft/ Open office. Nếu KH gửi Link dạng GS online thì (có thể) sẽ mất một bước convert định dạng.
dạ! chỉ là .xls, csv, xlsx, .zip thôi ạ, không có bản Online nào hết.
Bài đã được tự động gộp:

@chủ thớt: Thấy hơi khó hiểu chút. Bạn dùng Google Sheets thì sao lại tải file về lưu trên ổ đĩa của máy tính?
Google Sheets tức là làm việc online, vậy tải file lưu về Google Drive mới hợp lý chứ nhỉ?
Tải về ổ đĩa của máy tính hay về Drive đều được ạ, vì em nghĩ nếu tải về drive cũng phải tải về máy (vì em không dùng Google Drive File Stream) để thao tác nên em muốn tải trực tiếp về máy thì tiện hơn ạ.
 
Lần chỉnh sửa cuối:
Thân chào cả nhà GPEX!
Hiện tại em có một bài tập, nhưng tìm hoài không có cách nào làm được ạ.

Công việc thường ngày của em là nhận khoảng hơn 50 mail của các Khách Hàng khác nhau và hàng ngày phải download từng File đính kèm trong các Mail đó về các đường dẫn tương ứng.

Em có 01 File Google Sheet Theo Template:
EmailĐường dẫn lưu Filetình trạng
robin@gmail.comC:\Users\Downloads\Folder 1Đã lưu
robin2@gmail.comC:\Users\Downloads\Folder 2không có file đính kèm
robin3@gmail.comC:\Users\Downloads\Folder 3Đã lưu
robin4@gmail.comC:\Users\Downloads\Folder 4Đã lưu
Em muốn dùng macro trong Google sheet để tự download các Email chưa đọc trong danh sách cột Email và lưu vào đường dẫn tương ứng ở cột B (Đường dẫn lữu File). Nếu được thì có thể note luôn giúp em tình trạng luôn ạ.



Mong cả nhà giúp đỡ em, Em chân thành cảm ơn ạ..

Không có Google App Script nào tự tải File Gmail của bạn về máy tính được cả, chỉ có thể dùng API của Google thông qua một ngôn ngữ lập trình nào đó mới tải về tận ổ đĩa của bạn được mà thôi, có cả VBA với thư viện Web VBA. Hoặc chuyển tất cả các Mail của bạn vào Google Drive và tải App Google Drive của chính chủ Google về cài đặt, ứng dụng này sẽ tự động đồng bộ File từ Mail của bạn về máy tính.
 
Không có Google App Script nào tự tải File Gmail của bạn về máy tính được cả, chỉ có thể dùng API của Google thông qua một ngôn ngữ lập trình nào đó mới tải về tận ổ đĩa của bạn được mà thôi, có cả VBA với thư viện Web VBA. Hoặc chuyển tất cả các Mail của bạn vào Google Drive và tải App Google Drive của chính chủ Google về cài đặt, ứng dụng này sẽ tự động đồng bộ File từ Mail của bạn về máy tính.
Nếu không thể tải trực tiếp về máy tính thì tải vào Drive vẫn được ạ.
 
Chỗ này không đúng tẹo nào, bạn tìm hiểu lại nhé.
Nó là 1 file hoàn chỉnh, được lưu trên hệ thống ổ đĩa lưu trữ của Google (có thể là hệ thống của Google xây dựng hoặc của các nhà cung cấp dịch vụ lưu trữ mà Google thuê), được quản lý bằng nền tảng Google Drive. Còn Google Sheets là phần mềm nền tảng Web có khả năng xử lý tập tin kia.
Ý mình chỉ dừng lại ở việc mô tả rằng : Google cung cấp không hạn chế dung lượng văn bản dạng docs, spreadsheet & slide; và "My drive" chỉ gần như favourite của người dùng, nó hỗ trợ việc locate & manage tài liệu trong folder người dùng để thuận tiện việc quản lý tài liệu - biểu hiện rõ nhất bằng việc người dùng locate file trong folder chia sẻ do người khác làm owner thì "anh/chị ta" có thể bị mất đường dẫn (file bị trôi ở .. bất kỳ đâu trên cloud của Google) nếu bị gạt ra khỏi folder đó hoặc file bị xoá bởi colaborator khác, nhưng quyền ownership vẫn là của cá nhân ấy.

p/s: một ví dụ khác là mỗi file có thể có vô hạn location bằng việc tạo đường dẫn mới bằng phím tắt "Shift+Z" trên trình duyệt web.
 
Google cung cấp không hạn chế dung lượng văn bản dạng docs, spreadsheet & slide; và "My drive"
Chỗ màu đỏ kia không có đâu nhé. Google không có 'ngốc' đâu.
"My drive" chính là thư mục gốc của Google Drive, nó được chọn là thư mục mặc định để lưu trữ các tập tin Google Docs mới được tạo.
Thôi vụ này mình xin rút lui.
 
Mình sẽ xem giùm.
Có một điểm cần kiểm chứng kỹ: attachment là *.xls và *.xlsx (MS excel bản offline) thôi, hay có cả bản Online cùng làm trên Gdrive nhé - vì bản chất là Gspreadsheet không phải 1 file, nó làm trên môi trường online của Google, không chiếm dung lượng và có khả năng convert về dạng của Microsoft/ Open office. Nếu KH gửi Link dạng GS online thì (có thể) sẽ mất một bước convert định dạng.
Hi Anh, Nếu có thời gian rảnh giúp em phần này nhé.
 
Ứng dụng Google Drive: https://www.google.com/intl/vi_ALL/drive/download/
Cài đặt ứng dụng.
Mở Gmail vào Mail có tập tin đính kèm chọn "Lưu tất cả vào Drive". Xong
Tập tin sẽ tự động được Đồng bộ vào thư mục "Google Drive" đã được cài đặt.
 
Ứng dụng Google Drive: https://www.google.com/intl/vi_ALL/drive/download/
Cài đặt ứng dụng.
Mở Gmail vào Mail có tập tin đính kèm chọn "Lưu tất cả vào Drive". Xong
Tập tin sẽ tự động được Đồng bộ vào thư mục "Google Drive" đã được cài đặt.
Em cảm ơn anh đã quan tâm ạ, Đây là drive File Stream ạ, cái này chỉ có chức năng đồng bộ drive về máy local thôi ạ, ý của em như đã liệt kê là tự Download File được đính kèm trong GMail theo từng Email đã chỉ định như bài #1.
 
Vậy thì bạn tìm hiểu sử dụng kết hợp Python + Xlwings + Google API (gmail).
Hoặc Google API + VBA Web.

Những vấn đề bạn cần nó nằm ở mức độ chuyên sâu. Và nằm ngoài tầm trợ giúp.
Có lẽ là bạn cần phải trả phí để đạt được mục đích mong muốn. Còn không thì bạn phải bỏ công mày mò mà thôi.
Bài đã được tự động gộp:

Một cách khác nữa nhưng cũng thuộc mức độ chuyên sâu:
1. Ứng dụng Google Drive: Để tự động đồng bộ
2. Google Spreadsheet: để liệt kê Mail và thư mục để điều hướng.
3. Google API (Gmail + Drive): Để kết nối ứng dụng Gmail và Drive
4. Google App Script: kết nối Gmail và Drive thông qua API và điều hướng file trong mail vào thư mục Drive.
 
Lần chỉnh sửa cuối:
Vậy thì bạn tìm hiểu sử dụng kết hợp Python + Xlwings + Google API (gmail).
Hoặc Google API + VBA Web.

Những vấn đề bạn cần nó nằm ở mức độ chuyên sâu. Và nằm ngoài tầm trợ giúp.
Có lẽ là bạn cần phải trả phí để đạt được mục đích mong muốn. Còn không thì bạn phải bỏ công mày mò mà thôi.
Bài đã được tự động gộp:

Một cách khác nữa nhưng cũng thuộc mức độ chuyên sâu:
1. Ứng dụng Google Drive: Để tự động đồng bộ
2. Google Spreadsheet: để liệt kê Mail và thư mục để điều hướng.
3. Google API (Gmail + Drive): Để kết nối ứng dụng Gmail và Drive
4. Google App Script: kết nối Gmail và Drive thông qua API và điều hướng file trong mail vào thư mục Drive.
Cảm ơn Anh đã cho em biết những điều này ạ, chuyên sâu quá, thôi manual vậy.
 
Chơi đòn kích thích sự thèm muốn?

Người ta hỏi cách tải mà "có thể nhá" thì chỉ luôn đi. Lựa chọn Drive chỉ là "nếu ...".
 
Web KT
Back
Top Bottom