Untitled

mail@pastecode.io avatar
unknown
plain_text
7 months ago
1.9 kB
2
Indexable
Never
// Hàm doGet được gọi khi có yêu cầu HTTP GET
function doGet() {
  // Lấy bảng tính hiện đang hoạt động
  var ss = SpreadsheetApp.getActiveSpreadsheet();

  // Lấy tất cả các sheet trong bảng tính
  var sheets = ss.getSheets();

  // Khởi tạo một đối tượng để lưu trữ dữ liệu từ tất cả các sheet
  var output = {};

  // Duyệt qua tất cả các sheet
  for (var i = 0; i < sheets.length; i++) {
    // Lấy sheet hiện tại
    var sheet = sheets[i];

    // Lấy dữ liệu từ sheet hiện tại và thêm vào đối tượng
    output[sheet.getName()] = getSheetDataId(sheet); // Sử dụng tên của sheet làm key
  }

  // Trả về dữ liệu dưới dạng JSON
  return ContentService.createTextOutput(
    JSON.stringify(output)
  ).setMimeType(ContentService.MimeType.JSON);
}

// Hàm getSheetDataId lấy dữ liệu từ một sheet
function getSheetDataId(dataSh) {
  // Lấy phạm vi dữ liệu của sheet
  var dataRange = dataSh.getDataRange();

  // Lấy tất cả giá trị trong phạm vi dữ liệu
  var dataValues = dataRange.getValues();

  // Lấy hàng đầu tiên làm key
  var keys = dataValues[0];

  // Khởi tạo mảng để lưu trữ các đối tượng
  var objects = [];

  // Duyệt qua từng hàng dữ liệu, bắt đầu từ hàng thứ hai
  for (var i = 1; i < dataValues.length; i++) {
    // Khởi tạo đối tượng để lưu trữ dữ liệu của hàng hiện tại
    var obj = {};

    // Duyệt qua từng giá trị trong hàng
    for (var j = 0; j < dataValues[i].length; j++) {
      // Thêm giá trị vào đối tượng với key tương ứng
      obj[keys[j]] = dataValues[i][j];
    }

    // Thêm đối tượng vào mảng
    objects.push(obj);
  }

  // Trả về mảng các đối tượng
  return objects;
}
Leave a Comment