⚙️
กรุณาตั้งค่า
Google Sheets ID และ
Script URL ก่อนเริ่มบันทึกข้อมูล
—
ไปที่ตั้งค่า →
📌 รูปแบบ Excel ที่รองรับ:
คอลัมน์ที่ต้องมี (ตามลำดับ): วัน/เดือน/ปี | โรงงาน | รหัสพนักงาน | ชื่อ - สกุล | เพศ | กะ | แผนก | เหตุผล | การจำแนกโรค | อาการ | ความคิดเห็นพยาบาล | เวลานอนพัก | ประเภทยา | ยา1 | จำนวน1 | ยา2 | จำนวน2 | ยา3 | จำนวน3 | ยา4 | จำนวน4 | ชื่อพยาบาล
⚠️ ระบบจะ ข้ามแถวที่ 1-3 (Header + คำแนะนำ) และเริ่มอ่านจากแถวที่ 4
📂
คลิกเลือกไฟล์ หรือลากมาวางที่นี่
รองรับ .xlsx, .xls
👁️ ตัวอย่างข้อมูล (5 แถวแรก)
| # | วันที่ | โรงงาน | รหัส |
ชื่อ-สกุล | เพศ | กะ | แผนก |
เหตุผล | อาการ | ยา1 | ผลการรักษา | พยาบาล |
📌 วิธีตั้งค่า Google Sheets:
1. เปิด Google Sheets แล้วคัดลอก Sheet ID จาก URL: docs.google.com/spreadsheets/d/[Sheet ID]/edit
2. ไปที่ Extensions → Apps Script แล้ววาง Script ด้านล่างนี้
3. Deploy เป็น Web App → Execute as: Me, Who has access: Anyone → คัดลอก URL มาวาง
4. กด "บันทึกการตั้งค่า"
📜 คลิกดู Google Apps Script (วาง Apps Script ทั้งหมดนี้)
const SHEET_NAME = "MedicalRecords";
function doPost(e) {
try {
const data = JSON.parse(e.postData.contents);
const ss = SpreadsheetApp.getActiveSpreadsheet();
let sheet = ss.getSheetByName(SHEET_NAME);
if (!sheet) {
sheet = ss.insertSheet(SHEET_NAME);
sheet.appendRow([
"ID","วันที่","โรงงาน","กะ","รหัสพนักงาน","ชื่อ","สกุล","เพศ","แผนก",
"เหตุผล","อาการ",
"ยา1","จำนวน1","หน่วย1","ประเภท1",
"ยา2","จำนวน2","หน่วย2","ประเภท2",
"ยา3","จำนวน3","หน่วย3","ประเภท3",
"ผลการรักษา","พยาบาล","เวลาบันทึก"
]);
}
if (data.action === "save") {
const id = "MR" + Date.now();
sheet.appendRow([
id, data.date, data.factory, data.shift, data.empid,
data.fname, data.lname, data.gender, data.dept,
data.reason, data.symptoms,
data.med1_name, data.med1_qty, data.med1_unit, data.med1_type,
data.med2_name, data.med2_qty, data.med2_unit, data.med2_type,
data.med3_name, data.med3_qty, data.med3_unit, data.med3_type,
data.result, data.nurse, new Date().toLocaleString("th-TH")
]);
return ContentService.createTextOutput(JSON.stringify({success:true,id:id}))
.setMimeType(ContentService.MimeType.JSON);
}
if (data.action === "delete") {
const rows = sheet.getDataRange().getValues();
for (let i = 1; i < rows.length; i++) {
if (rows[i][0] == data.id) { sheet.deleteRow(i+1); break; }
}
return ContentService.createTextOutput(JSON.stringify({success:true}))
.setMimeType(ContentService.MimeType.JSON);
}
} catch(err) {
return ContentService.createTextOutput(JSON.stringify({success:false,error:err.message}))
.setMimeType(ContentService.MimeType.JSON);
}
}
function doGet(e) {
try {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName(SHEET_NAME);
if (!sheet) return ContentService.createTextOutput(JSON.stringify({records:[]}))
.setMimeType(ContentService.MimeType.JSON);
const rows = sheet.getDataRange().getValues();
const headers = rows[0];
const records = rows.slice(1).map(row => {
let obj = {};
headers.forEach((h, i) => obj[h] = row[i]);
return obj;
});
return ContentService.createTextOutput(JSON.stringify({records}))
.setMimeType(ContentService.MimeType.JSON);
} catch(err) {
return ContentService.createTextOutput(JSON.stringify({error:err.message}))
.setMimeType(ContentService.MimeType.JSON);
}
}