การอ่านเวิร์กบุ๊ก
เปิดและอ่านไฟล์ Excel
การอ่านเวิร์กบุ๊ก เป็นบทเรียน Python Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Python Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน
การใช้ Excel จาก Python
openpyxl เป็นไลบรารีมาตรฐานสำหรับอ่านและเขียนไฟล์ Excel รุ่นใหม่ (รูปแบบ .xlsx) ไลบรารีนี้ช่วยให้ Python ทำงานกับสเปรดชีตโดยอัตโนมัติ ซึ่งเดิมผู้ใช้ต้องทำด้วยตนเอง
บทเรียนนี้มุ่งเน้นการเปิดไฟล์และอ่านเนื้อหาภายใน
แบบจำลองสมุดงาน
ไฟล์ Excel มีลำดับชั้นที่ชัดเจน ซึ่ง openpyxl จำลองตามโครงสร้างนี้
- สมุดงาน คือไฟล์ทั้งหมด
- แผ่นงาน คือแท็บหนึ่งภายในสมุดงาน
- เซลล์ คือช่องเดี่ยวรูปแบบ A1 ที่มีค่าอยู่ภายใน
คุณจะนำทางจากสมุดงานไปยังแผ่นงาน แล้วจึงไปยังเซลล์
การเปิดไฟล์
load_workbook('data.xlsx') อ่านไฟล์และส่งคืนสมุดงาน สำหรับไฟล์ขนาดใหญ่ที่คุณอ่านอย่างเดียว ให้ส่ง read_only=True เพื่ออ่านแถวแบบต่อเนื่องและประหยัดหน่วยความจำ
ใช้ data_only=True เพื่ออ่านผลลัพธ์ล่าสุดที่คำนวณแล้วของเซลล์สูตร แทนที่จะอ่านข้อความสูตร
การเลือกแผ่นงาน
wb.active ส่งคืนแผ่นงานที่เลือกอยู่ในขณะนั้น wb['Sheet1'] ใช้เลือกตามชื่อ และ wb.sheetnames แสดงรายการแท็บทั้งหมด การเลือกแผ่นงานที่ถูกต้องเป็นขั้นตอนแรกของการอ่านข้อมูลทุกครั้ง
sheetnames = ['Summary', 'Q1', 'Q2', 'Q3']
wanted = 'Q2'
if wanted in sheetnames:
print('Selecting sheet:', wanted)
else:
print('Not found, defaulting to', sheetnames[0])การอ่านเซลล์เดี่ยว
เข้าถึงเซลล์ด้วยที่อยู่แบบ Excel เช่น ws['A1'].value หรือใช้ตัวเลขด้วย ws.cell(row=1, column=1).value แอตทริบิวต์ .value เก็บข้อมูลจริง ซึ่งอาจเป็นข้อความ ตัวเลข วันที่ หรือค่าว่าง
ตัวอักษรและตัวเลขคอลัมน์
คอลัมน์ Excel ใช้ตัวอักษร (A, B, ... Z, AA) แต่ openpyxl ก็ใช้ตัวเลขที่เริ่มจาก 1 เช่นกัน บางครั้งจึงจำเป็นต้องแปลงระหว่างสองรูปแบบ ต่อไปนี้คือตัวเลขคอลัมน์ที่ได้จากตัวอักษร
def col_to_num(letters):
num = 0
for ch in letters.upper():
num = num * 26 + (ord(ch) - ord('A') + 1)
return num
for c in ['A', 'B', 'Z', 'AA']:
print(c, '->', col_to_num(c))การวนซ้ำในแถว
ws.iter_rows(values_only=True) ส่งคืนแต่ละแถวเป็นทูเพิลของค่า วิธีนี้เป็นวิธีที่สะอาดที่สุดในการอ่านตาราง โดยปกติแถวแรกจะเป็นหัวตาราง
คุณวนซ้ำในแถวได้เช่นเดียวกับสิ่งที่วนซ้ำได้ทุกชนิด
rows = [
('Name', 'Age', 'City'),
('Ada', 36, 'London'),
('Linus', 54, 'Helsinki'),
]
header = rows[0]
for record in rows[1:]:
print(dict(zip(header, record)))การค้นหาช่วงที่มีการใช้งาน
ws.max_row และ ws.max_column บอกว่าข้อมูลขยายไปไกลเพียงใด ws.dimensions ส่งคืนข้อความช่วง เช่น 'A1:C10' ใช้ค่าเหล่านี้เพื่อหลีกเลี่ยงการอ่านเซลล์ว่าง
การอ่านช่วงข้อมูล
คุณสามารถแบ่งส่วนแผ่นงานได้ด้วย ws['A1:C3'] ซึ่งส่งคืนทูเพิลของทูเพิลแถวที่ประกอบด้วยวัตถุเซลล์ วิธีนี้มีประโยชน์เมื่อคุณต้องการเพียงบางส่วนของแผ่นงานแทนที่จะอ่านทุกแถว
การจัดการเซลล์ว่าง
เซลล์ว่างจะส่งคืนค่า None สเปรดชีตจริงมักมีข้อมูลไม่เป็นระเบียบ ดังนั้นขณะอ่านข้อมูลควรป้องกันค่าที่หายไป เช่น แทนที่ด้วยค่าเริ่มต้น วิธีนี้ช่วยป้องกันข้อขัดข้องในขั้นตอนถัดไป
raw_row = ('Ada', None, 'London')
clean = [v if v is not None else 'N/A' for v in raw_row]
print(clean)การอ่านข้อมูลจากหลายแผ่นงาน
สมุดงานหนึ่งเล่มอาจแบ่งข้อมูลไว้ในหลายแท็บ เช่น แท็บละหนึ่งเดือน ให้วนซ้ำใน wb.sheetnames เลือกแต่ละแผ่นงาน แล้วอ่านด้วยตรรกะเดียวกัน กำกับแต่ละแถวด้วยชื่อแผ่นงานเพื่อให้ติดตามแหล่งที่มาได้
รูปแบบนี้ช่วยรวมหลายแท็บให้เป็นชุดข้อมูลรวมชุดเดียว
ตรวจสอบความเข้าใจ
ทดสอบทักษะการอ่านข้อมูลของคุณ
ทบทวน
ตอนนี้คุณสามารถอ่านไฟล์ Excel ได้แล้ว
- ลำดับชั้น: สมุดงาน > แผ่นงาน > เซลล์
load_workbookพร้อมตัวเลือกread_onlyและdata_only- เลือกแผ่นงานผ่าน
wb.active,wb['Name'],wb.sheetnames - อ่านค่าด้วย
.value,iter_rows(values_only=True)และตรวจสอบmax_row/max_column - ป้องกันค่า
Noneสำหรับเซลล์ว่าง
คำถามที่พบบ่อย
บทเรียน “การอ่านเวิร์กบุ๊ก” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การอ่านเวิร์กบุ๊ก” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Python Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การอ่านเวิร์กบุ๊ก”
เปิดและอ่านไฟล์ Excel คุณปฏิบัติ Python Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Python Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Python Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “การอ่านเวิร์กบุ๊ก” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Python Academy นี้ได้ไหม
ได้ บทเรียน Python Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การอ่านเวิร์กบุ๊ก
- การเขียนและจัดรูปแบบเซลล์
- สูตรและกราฟ
- การประมวลผลรายงานเป็นชุด