Excel เป็นสเปรดชีตที่มีชื่อเสียงที่สุด และผู้ใช้คอมพิวเตอร์เกือบทุกคนพอใจกับแนวคิดในการจัดการข้อมูลผ่านสเปรดชีต ในที่สุดบางโปรแกรม python ก็ต้องโต้ตอบกับ excel ไลบรารีหลามจำนวนมากพร้อมให้สร้าง อ่าน และเขียนลงในไฟล์ excel เราจะดูตัวอย่างของห้องสมุดที่สำคัญไม่กี่แห่งด้านล่าง
การใช้ openpyxl
ไลบรารีนี้สามารถอ่าน/เขียนไฟล์ Excel 2010 xlsx/xlsm/xltx/xltm ในตัวอย่างด้านล่าง เราสร้างเวิร์กชีต excel กำหนดข้อมูลให้กับเซลล์ และสุดท้ายบันทึกไฟล์ไปยังตำแหน่งที่ต้องการ โมดูลนี้มีวิธีการในตัวมากมายที่สามารถใช้สำหรับสิ่งนี้ เราเห็นวิธีการเหล่านั้นที่ใช้ด้านล่าง
ตัวอย่าง
#openpyxl from openpyxl import Workbook Spreadsheet = Workbook() # grab the active worksheet worksheet = Spreadsheet.active # Data can be assigned directly to cells worksheet['A1'] = 50 # Rows can also be appended worksheet.append([5, 15, 25, 35, 45, 55]) worksheet.append([9, 19, 29, 39, 49, 59]) # Python types will automatically be converted import datetime t1 = datetime.datetime.now() worksheet['A1'] = t1.year worksheet['A2'] = t1 # Save the file Spreadsheet.save("E:\\openpyxl.xlsx")
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
การใช้ xlwt
นี่คือไลบรารี่สำหรับนักพัฒนาเพื่อใช้สร้างไฟล์สเปรดชีตที่เข้ากันได้กับ Microsoft Excel เวอร์ชัน 95 ถึง 2003 เราไม่เพียงแต่สามารถเขียนค่าลงในเซลล์เท่านั้น แต่ยังสามารถจัดรูปแบบค่าได้อีกด้วย ค่าต่างๆ สามารถทำเป็นตัวหนา สี ตัวเอียง ฯลฯ นอกจากนี้ยังสามารถควบคุมขนาดตัวอักษรได้ ในตัวอย่างด้านล่าง เราจัดรูปแบบตัวเลขที่เขียนและทำให้เป็นสีน้ำเงิน
ตัวอย่าง
import xlwt from datetime import datetime Spreadsheet = xlwt.Workbook() worksheet = Spreadsheet.add_sheet('Newsheet1') format1 = xlwt.easyxf('font: name Times New Roman, color-index blue, bold on', num_format_str='#,##0.00') format2 = xlwt.easyxf(num_format_str='D-MMM-YY') worksheet.write(0, 0, datetime.now(), format2) worksheet.write(0, 1, datetime.now().strftime("%B"),format2) worksheet.write(0, 2, datetime.now().strftime("%A"),format2) worksheet.write(1, 0, 5369.2, format1) worksheet.write(1, 1, 1926.5,format1) worksheet.write(1, 2, 4896.2,format1) worksheet.write(2, 0, 5) worksheet.write(2, 1, 10) worksheet.write(2, 2, xlwt.Formula("A3+B3")) Spreadsheet.save('E:\\xlwt_spreadsheet.xls')
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
การใช้ xlsxwriter
โมดูลนี้สามารถสร้างไฟล์ excel ของเวอร์ชัน 2007 ได้ โดยมีจำนวนคุณลักษณะที่กว้างกว่าโมดูลที่สร้างไฟล์ excel ด้านบนมาก สามารถเขียนข้อความ ตัวเลข สูตร และไฮเปอร์ลิงก์ไปยังแผ่นงานได้หลายแผ่น ในตัวอย่างด้านล่าง ไม่เพียงแต่เราจะจัดรูปแบบข้อความในชีตเท่านั้น แต่ยังเพิ่มรูปภาพลงในชีตด้วย
ตัวอย่าง
import xlsxwriter Spreadsheet = xlsxwriter.Workbook('E:\\xlsxw_spreadsheet.xlsx') sheet = Spreadsheet.add_worksheet() sheet.set_column('A:A', 18) # Add a bold format to use to highlight cells. bold = Spreadsheet.add_format({'bold': True}) #simple text. sheet.write('A1','Freelancer',bold) sheet.write('A2', 'Work') sheet.write('A3', 100) sheet.write('A4', 1000) sheet.write('B1', 'DECIMAL', bold) sheet.write('B2', 17.1) sheet.write('B3', 29.6) sheet.write('B4', 45.9) sheet.write('C1', 'POSITIVE',bold) sheet.write('C2', 69) sheet.write('C3', 53) sheet.write('C4', 36) sheet.write('D1','NEGATIVE',bold) sheet.write('D2', -89) sheet.write('D3', -26) sheet.write('D4', -15) # Insert an image. sheet.insert_image('E5', 'E:\\firefox.JPG') Spreadsheet.close()
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -