การนำเข้าไฟล์ 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. หากชื่อชีตยังไม่มีอยู่ในไฟล์ ชีตใหม่จะถูกสร้างขึ้นอัตโนมัติ.