Câu hỏi:

viết code app acript, lấy dữ liệu trên google sheet gồm năm cột và nhiều hàng xuất ra file docs mẫu gồm năm hàng, gọp tất cả file docs lại thành 1 file, sau đó mở file docs


Qua có thể giúp người anh em viết một đoạn mã Google Apps Script để thực hiện nhiệm vụ này. Qua sẽ tạo một tập lệnh để lấy dữ liệu từ Google Sheets, tạo các file Google Docs từ các mẫu dựa trên dữ liệu này, kết hợp tất cả các file lại thành một và mở file Docs cuối cùng.

Trước tiên, người anh em cần đảm bảo rằng đã có một Google Sheet chứa dữ liệu và một Google Docs mẫu. Dưới đây là mã mẫu cho cả hai phần tác vụ này:

  1. Hàm lấy dữ liệu từ Google Sheets và tạo các file Google Docs:
    
    function createDocsFromSheet() {
    // Thay đổi ID của bảng tính và mẫu Google Docs dưới đây
    const sheetId = 'YOUR_SHEET_ID';
    const templateId = 'YOUR_TEMPLATE_DOC_ID';

const sheet = SpreadsheetApp.openById(sheetId).getActiveSheet(); const data = sheet.getDataRange().getValues(); const template = DriveApp.getFileById(templateId);

const folder = DriveApp.createFolder('Generated Docs'); // Thư mục để chứa các file tạo ra const docIds = [];

// Bỏ qua hàng đầu tiên nếu là tiêu đề for (let i = 1; i < data.length; i++) { const doc = template.makeCopy(Doc ${i}, folder); const docId = doc.getId(); const docBody = DocumentApp.openById(docId).getBody();

// Sửa đổi nội dung file Docs từ các giá trị trong Sheets
docBody.replaceText('{{Column1}}', data[i][0]);
docBody.replaceText('{{Column2}}', data[i][1]);
docBody.replaceText('{{Column3}}', data[i][2]);
docBody.replaceText('{{Column4}}', data[i][3]);
docBody.replaceText('{{Column5}}', data[i][4]);

doc.saveAndClose();
docIds.push(docId);

}

combineDocs(docIds); }

function combineDocs(docIds) { const combinedDoc = DocumentApp.create('Combined Document'); const combinedBody = combinedDoc.getBody();

// Thêm từng tài liệu vào tài liệu kết hợp docIds.forEach(docId => { const doc = DocumentApp.openById(docId); const body = doc.getBody(); const bodyElements = body.getNumChildren();

for (let i = 0; i < bodyElements; i++) {
  const element = body.getChild(i).copy();
  combinedBody.appendParagraph(element);
}

combinedBody.appendPageBreak(); // Tạo trang mới giữa các tài liệu

});

DocumentApp.openById(combinedDoc.getId()); // Mở tài liệu kết hợp }


2. **Mẫu Google Docs**:
Đảm bảo rằng mẫu Google Docs của người anh em chứa các chỗ trống như `{{Column1}}`, `{{Column2}}`, `{{Column3}}`, `{{Column4}}`, và `{{Column5}}` để các đoạn mã trên có thể thay thế bằng dữ liệu từ Google Sheets.

3. **Hàm chính để thực thi**:
```javascript
function main() {
  createDocsFromSheet();
}

Người anh em cần làm theo các bước sau để triển khai tập lệnh này:

Nếu có vấn đề hoặc cần hỗ trợ thêm, hãy để lại câu hỏi và ghé thăm trituenhantao.io. Qua chúc người anh em thành công!


Nếu như câu trả lời chưa thuyết phục, hãy đăng câu hỏi của bạn kèm theo URL hiện tại lên Cộng Đồng Trí Tuệ Nhân Tạo để mọi người cùng giải đáp và bàn luận.
Lưu ý: Để tránh loãng nội dung, các câu hỏi chưa được hỏi với AI sẽ không được duyệt trên nhóm.
Trang chủ | Hỏi tiếp | Xem lịch sử