กำหนดรูปแบบให้ตัวเลขแบบ leading Zero

มีเพื่อนต้องการแฟ้ม .csv ที่มี leading zero
คือ นำหน้าด้วยเลข 0 หากจำนวนหลักไม่ครบตามต้องการ
เพราะเป็นเงื่อนไขของหน่วยเหนือ เค้าขอมาอย่างไรก็ต้องจัดให้
กำหนดมาให้มีข้อมูล 3 หลัก เช่น 007 ส่งแต่ 7 ไปเค้าก็ไม่ปลื้ม
แต่ข้อมูลในระบบเก็บเป็นเลข 7
เดิมนั้นคุณปอ นำข้อมูลออกจากระบบ (export)
แล้วเขียนในรูปแบบ .htm แต่เปลี่ยนสกุลเป็น .xls อัตโนมัติ เพื่อใช้ใน excel
จากนั้นคุณนอ ก็เปิดใน excel เพื่อประมวลผลอีกซะป๊ะ
แล้วจึง save as เป็น .csv เพื่อนำเข้าระบบ (import) ให้หน่วยเหนือ

number format สำหรับ excel
number format สำหรับ excel

สรุปขั้นตอน
1. ข้อมูลเลข 7 ในระบบ ปรับเป็น 007 แล้วส่งเป็น .htm จะพบ 007 ผ่าน table
ไม่พบปัญหา เมื่อแสดงผล 007 ใน browser
2. นำแฟ้ม .htm แปลงเป็น .xls ด้วยการเปลี่ยนนามสกุล เพื่อนำไปเปิดใน excel
ไม่พบปัญหา เพราะแฟ้มทั่วไปเปลี่ยนนามสกุลได้
3. เปิดแฟ้ม .xls ที่มีเลข 007 พบว่า excel ปรับการแสดงผลเป็น 7 ทันที
พบปัญหา ว่าเลข 007 เมื่อแสดงใน excel จะพบเพียงเลข 7
4. เดิมแก้ด้วยการปรับแบบ manual ใน excel
พร้อมไปกับการประมวลผลอื่น แล้วส่งออกเป็น .csv ก็รู้สึกว่าเป็นการทำงานหลายรอบ
คุณนอ บอกคุณปอ ว่าไม่สะดวก ช่วยปรับระบบให้หน่อย

สรุปว่า
ในขั้นตอนที่ 1 เขียนข้อมูลออกจากระบบ
โดยปรับเพิ่ม css เข้าไปใน table เพื่อให้การแสดงผลใน excel ถูกต้อง
ด้วยการเติม css ว่า style=”mso-number-format:000;”
เท่านี้ใน excel ก็จะมองเห็น 000 ตามต้องการแล้ว ซึ่งใช้งานได้กับ excel
เมื่อส่งออกไปเป็น .csv ก็พบว่ารูปแบบ 000 ติดไปด้วย และส่งไปให้หน่วยเหนือได้

ตัวอย่าง source code ใน .xls
<body>
<table>
<tr><td style=”mso-number-format:000;”>0</td></tr>
<tr><td style=”mso-number-format:000;”>000</td></tr>
</table>
</body>

 

ปล. ข้อมูลเรื่องนี้ได้จากการย้อนรอยกลับขึ้นไปจากตัว excel เองครับ

Author: บุรินทร์ รุจจนพันธุ์

I am Lecturer, Developer, Researcher, Columnist, Writer, Photographer, and Webmaster - L@mpang man

Leave a Reply