Google Sheets AppScript Export Image

function exportQRImagesUsingAColumnData() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const folderName = 'QR';
  const folder = createOrGetFolder(folderName);

  const startRow = 2; // Skip header
  const lastRow = sheet.getLastRow();

  const idValues = sheet.getRange(startRow, 1, lastRow - startRow + 1).getValues(); // Column A

  for (let i = 0; i < idValues.length; i++) {
    const rowNumber = startRow + i;
    const id = idValues[i][0];

    if (!id || id.toString().trim() === "") {
      Logger.log(`⚠️ Skipped empty ID at row ${rowNumber}`);
      continue;
    }

    const encodedData = encodeURIComponent(id);
    const imageUrl = `https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=${encodedData}`;

    try {
      const response = UrlFetchApp.fetch(imageUrl);
      const blob = response.getBlob().setName(`QR_${id}.png`);
      folder.createFile(blob);
      Logger.log(`✅ Exported QR for row ${rowNumber} (ID: ${id})`);
    } catch (e) {
      Logger.log(`❌ Failed to fetch QR for row ${rowNumber} (ID: ${id}): ${e}`);
    }
  }

  Logger.log('🎯 Export completed! Check your Google Drive folder: ' + folder.getUrl());
}

function createOrGetFolder(folderName) {
  const folders = DriveApp.getFoldersByName(folderName);
  return folders.hasNext() ? folders.next() : DriveApp.createFolder(folderName);
}