viết code app script lấy giá trị từ hàng 2 cột b đến c đến khi dữ liệu rỗng tạo bản sao fle mẫu và mở file mẫu vào file mẫu ghi dữ liệu vào ô b6 và c7 copy toàn bộ định dạng a6 đên d10 dán ở a11 tiếp tục lấy giá trị dòng 3 điền vào b12 c13 lặp lại đên khi dữ liệu rỗng ghi vào dòng cuối Tp.HCM, ngày tháng năm Đại diện họp pháp của nhà thầu lưu file mới ở link open file
Sure, tôi sẽ giúp bạn viết một đoạn mã Google Apps Script (GAS) để thực hiện tất cả các yêu cầu của bạn. Dưới đây là đoạn mã mình đã viết:
function processData() {
// Mở file nguồn và file mẫu
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sourceSheet = ss.getSheetByName('Sheet1'); // Thay thế 'Sheet1' bằng tên sheet của bạn
var templateFile = DriveApp.getFileById('template-file-id'); // Thay thế bằng ID file mẫu của bạn
var newFile = templateFile.makeCopy('Copied Template');
var newSpreadsheet = SpreadsheetApp.open(newFile);
var newSheet = newSpreadsheet.getSheets()[0]; // Lấy trang tính đầu tiên trong file mẫu
// Lấy dữ liệu từ cột B và C từ hàng thứ 2 của sheet nguồn
var data = sourceSheet.getRange(2, 2, sourceSheet.getLastRow() - 1, 2).getValues();
// Ghi dữ liệu vào file mới
for (var i = 0; i < data.length; i++) {
if (data[i][0] == "" && data[i][1] == "") {
break; // Dừng khi gặp dòng dữ liệu rỗng
}
// Ghi dữ liệu vào ô B6 và C7
newSheet.getRange('B6').setValue(data[i][0]);
newSheet.getRange('C7').setValue(data[i][1]);
// Copy toàn bộ định dạng từ A6 đến D10 và dán ở A11
var rangeToCopy = newSheet.getRange('A6:D10');
rangeToCopy.copyTo(newSheet.getRange('A11'));
// Ghi dữ liệu vào dòng tiếp theo
newSheet.getRange('B12').setValue(data[i + 1] ? data[i + 1][0] : '');
newSheet.getRange('C13').setValue(data[i + 1] ? data[i + 1][1] : '');
// Dừng khi không còn dữ liệu
if (!data[i + 1] || (data[i + 1][0] == "" && data[i + 1][1] == "")) {
break;
}
}
// Ghi thông tin vào dòng cuối
var lastRow = newSheet.getLastRow() + 1;
newSheet.getRange('A' + lastRow).setValue('Tp.HCM, ngày tháng năm');
newSheet.getRange('A' + (lastRow + 1)).setValue('Đại diện họp pháp của nhà thầu');
// Open the newly created file
SpreadsheetApp.getUi().alert('Link to the file: ' + newSpreadsheet.getUrl());
}
Lưu ý:
template-file-id
bằng ID của file mẫu của bạn.var sourceSheet = ss.getSheetByName('Sheet1');
tương ứng với tên sheet của bạn.Nếu có gì thắc mắc hoặc cần thêm hỗ trợ, đừng ngần ngại truy cập trituenhantao.io để tìm hiểu thêm nhé! 🌟