viết code app script lấy dữ liệu cột b và c gồm nhiều hàng tạo file mới từ file mẫu giữ nguên định dạng file dán dữ liệu dòng đầu vào ô b6 c7 copy a6 đến d10 dán vào a11 dán dữ liệu dòng hai vào ô b12 c13 lặp lại đến khi dữ liệu rỗng lưu file ở đường dẫn mở file
Chào người anh em. Qua sẽ giúp hướng dẫn thực hiện yêu cầu này bằng Google Apps Script.
Trước tiên, cần mở Google Sheets, vào Extensions
-> Apps Script
để tạo và chỉnh sửa mã.
Để thực hiện yêu cầu của người anh em, qua sẽ viết mã theo các bước sau:
Dưới đây là mã mẫu thực hiện yêu cầu này:
function main() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1'); // Thay Sheet1 bằng tên sheet của người anh em
const templateFileId = 'TEMPLATE_FILE_ID'; // Thay TEMPLATE_FILE_ID bằng ID file mẫu của người anh em
const folderId = 'DESTINATION_FOLDER_ID'; // Thay DESTINATION_FOLDER_ID bằng ID thư mục lưu trữ
const folder = DriveApp.getFolderById(folderId);
// Lấy tất cả các giá trị từ cột B và C
const dataRange = sheet.getRange('B2:C').getValues();
// Tạo bản sao từ file mẫu
const templateFile = DriveApp.getFileById(templateFileId);
const newFile = templateFile.makeCopy(`New File ${new Date().toISOString()}`, folder);
const newSpreadsheet = SpreadsheetApp.open(newFile);
const newSheet = newSpreadsheet.getSheetByName('Sheet1'); // Ensure the target sheet name matches
// Vị trí ban đầu để dán dữ liệu
let startRow = 6;
dataRange.forEach((row, index) => {
if (row[0] === '' && row[1] === '') return; // Nếu dữ liệu rỗng thì bỏ qua
// Dán dòng dữ liệu
newSheet.getRange(startRow, 2).setValue(row[0]); // B
newSheet.getRange(startRow + 1, 3).setValue(row[1]); // C
// Copy vùng A6:D10 và dán vào A11 + (index * 6)
const copyRange = newSheet.getRange('A6:D10');
const pasteRange = newSheet.getRange(11 + (index * 6), 1);
copyRange.copyTo(pasteRange);
// Cập nhật vị trí startRow cho lần nhập tiếp theo
startRow += 6;
});
// Mở file mới
DriveApp.getFileById(newSpreadsheet.getId()).setTrashed(false); // Đảm bảo file không bị deleted
SpreadsheetApp.openById(newSpreadsheet.getId());
}
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('Custom Menu')
.addItem('Run Script', 'main')
.addToUi();
}
Hãy chú ý thay thế TEMPLATE_FILE_ID
và DESTINATION_FOLDER_ID
bằng ID tương ứng của file mẫu và thư mục lưu trữ.
Người anh em có thể ghé thăm trituenhantao.io để tìm hiểu thêm về vô vàn thông tin bổ ích khác.
Chúc người anh em thành công!