Webapps อัปโหลดไฟล์ CSV ไปยัง Google Sheet

 


การนำเข้าไฟล์ CSV ไปยัง Google Sheet ผ่านเว็บแอปที่สร้างด้วย Google Apps Script สามารถทำได้ตามขั้นตอนด้านล่าง

1. โค้ดฝั่ง Apps Script (Server-Side)


function doGet() {
  return HtmlService.createTemplateFromFile('index').evaluate()
    .setTitle("importcsv")
    .setFaviconUrl("https://semicon.github.io/img/logo2.png")
    .addMetaTag('viewport', 'width=device-width , initial-scale=1')
    .setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL)
}

// อัปโหลดและนำเข้าไฟล์ CSV
function importCSVToSheet(fileContent, sheetName) {
  try {
    const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName) ||
                  SpreadsheetApp.getActiveSpreadsheet().insertSheet(sheetName);
    sheet.clear(); // ล้างข้อมูลเก่าหากมี
    const rows = Utilities.parseCsv(fileContent);
    sheet.getRange(1, 1, rows.length, rows[0].length).setValues(rows);
    return { success: true, message: `นำเข้าข้อมูลไปยังชีต '${sheetName}' เรียบร้อยแล้ว` };
  } catch (error) {
    return { success: false, message: `เกิดข้อผิดพลาด: ${error.message}` };
  }
}


2. โค้ด HTML (Client-Side):

สร้างไฟล์ HTML ชื่อ index.html:

<!DOCTYPE html>
<html>
  <head>
    <title>Upload CSV</title>
    <script>
      function uploadCSV() {
        const fileInput = document.getElementById("csvFile");
        const sheetName = document.getElementById("sheetName").value;

        if (!fileInput.files[0]) {
          alert("กรุณาเลือกไฟล์ CSV");
          return;
        }

        const reader = new FileReader();
        reader.onload = function(e) {
          const fileContent = e.target.result;
          google.script.run
            .withSuccessHandler((response) => {
              alert(response.message);
              if (response.success) {
                fileInput.value = ""; // ล้างข้อมูล input หลังอัปโหลดเสร็จ
                document.getElementById("sheetName").value = "";
              }
            })
            .importCSVToSheet(fileContent, sheetName);
        };
        reader.readAsText(fileInput.files[0]);
      }
    </script>
  </head>
  <body>
    <h3>อัปโหลดไฟล์ CSV ไปยัง Google Sheet</h3>
    <form id="uploadForm" onsubmit="event.preventDefault(); uploadCSV();">
      <label for="sheetName">ชื่อชีต:</label><br>
      <input type="text" id="sheetName" placeholder="กรอกชื่อชีต" required><br><br>
     
      <label for="csvFile">เลือกไฟล์ CSV:</label><br>
      <input type="file" id="csvFile" accept=".csv" required><br><br>

      <button type="submit">อัปโหลด</button>
    </form>
  </body>
</html>


3. การติดตั้งและทดสอบ:

1. ติดตั้งสิทธิ์การเข้าถึงไฟล์:

  • ไปที่ Apps Script Editor > คลิก Extensions > Apps Script > Deploy > New Deployment.
  • เลือก Web app และตั้งค่าการเข้าถึงเป็น Anyone.

2. เปิดเว็บแอป:

  • ใช้ URL ที่ได้จากการ Deploy ในการเปิดเว็บแอป.

3. ทดสอบการทำงาน:

  • อัปโหลดไฟล์ .csv ผ่านเว็บฟอร์ม.
  • กรอกชื่อชีตที่ต้องการนำข้อมูลเข้า.
  • กดปุ่มอัปโหลด.

ข้อมูลในไฟล์ CSV จะถูกนำเข้าไปยังชีตที่กำหนดใน Google Sheet. หากชื่อชีตยังไม่มีอยู่ในไฟล์ ชีตใหม่จะถูกสร้างขึ้นอัตโนมัติ.


หากเห็นว่ามีประโยชน์โปรดร่วมสนับสนุนเพื่อเป็นกำลังใจในการพัฒนาต่อไป






แสดงความคิดเห็น (0)
ใหม่กว่า เก่ากว่า