
pip install pywin32
client โดยเวลาจะใช้ควรสั่ง import แบบนี้import win32com.client
from win32com.client import Dispatch
import win32com แบบนี้จะไม่สามารถใช้ win32com.client ได้ ต้องระวังด้วยimport win32com
win32com.client # ได้ AttributeError: module 'win32com' has no attribute 'client'
Dispatch ดังนั้นจะแค่ from win32com.client import Dispatch ทั้งหมดเพื่อความง่ายfrom win32com.client import Dispatch
app = Dispatch('Word.Application')
app.visible = True
doc = app.Documents.Add()
doc.Content.Text = 'ราชาวีรชน เกิดใหม่เพื่อขัดเกลาวิถีต่อสู้\nและกลายเป็นอัศวินฝึกหัดที่แกร่งสุดในโลก♀'

Dispatch ขึ้น โดยใส่ 'Word.Application' หมายถึงต้องการเปิดไฟล์เวิร์ด (ถ้าหากต้องการเปิดเอ็กซ์เซลก็เปลี่ยนเป็น 'Excel.Application' เป็นต้น)app.visible = True นั้นหมายถึงว่าให้เปิดมาในโหมดที่ขึ้นหน้าต่างมาให้เรามองเห็นด้วยได้ ถ้าไม่ได้ใส่โปรแกรมก็จะถูกเปิดขึ้นมาเบื้องหลัง เราจะมองไม่เห็น และไม่สามารถปิดหน้าต่างโดยตรงได้ด้วยdoc = app.Documents.Add() หมายถึงสร้างหน้ากระดาษใหม่ขึ้นมาเป็นหน้าเปล่าๆdoc.Content.Text นั้นคือตัวข้อความภายในหน้ากระดาษ เราสามารถป้อนข้อความที่ต้องการเขียนเข้าไปได้โดยตรงเลย ข้อความก็จะมาปรากฏในหน้ากระดาษตามนั้น ที่จริงแล้วมีรายละเอียดมากกว่านี้อีก เช่นกำหนดย่อหน้า ปรับขนาดหรือสีหรือฟอนต์ของอักษร แต่ในที่นี้แค่แสดงให้เห็นตัวอย่างการใช้ง่ายๆ.SaveAs() โดยใส่ชื่อไฟล์ที่ต้องการบันทึกลงไป เช่นfrom win32com.client import Dispatch
app = Dispatch('Word.Application')
doc = app.Documents.Add()
doc.Content.Text = 'เพราะพระเจ้าเลือกเลยได้เกิดใหม่มาเลี้ยงสไลม์ในต่างโลก'
doc.SaveAs(r'พระเจ้าเลือก.docx')
doc.Close()
app.Quit()
doc.Close() และ app.Quit() เพื่อทำการปิดทุกอย่างลงหลังจากที่บันทึกเรียบร้อยแล้วapp.visible = True ก็ได้ แล้วก็จะเห็นเวิร์ดถูกเปิดขึ้นมาก่อนจะถูกปิดไป แต่ก็ไม่จำเป็นถ้าไม่ได้ต้องการเห็นหน้าต่างมันขึ้นมาระหว่างดำเนินการอยู่.Documents.Open()from win32com.client import Dispatch
app = Dispatch('Word.Application')
app.visible = True
doc = app.Documents.Open(r'พระเจ้าเลือก.docx')

.SaveAs นั้นนอกจากจะใช้บันทึกไฟล์เป็นไฟล์เวิร์ดธรรมดาแล้วยังอาจใช้บันทึกเป็นไฟล์ชนิดต่างๆซึ่งสามารถเลือกได้ ทำได้โดยการเติมตัวเลขระบุชนิดของไฟล์ที่ต้องการไปข้างหลัง เช่นถ้าต้องการบันทึกเป็น pdf ก็ใส่เลข 17from win32com.client import Dispatch
docx_file = r'shougayaki.docx' # ไฟล์เวิร์ดที่ต้องการแปลง
pdf_file = r'หมูย่างซอสขิง.pdf' # ชื่อไฟล์ pdf ที่ต้องการ
app = Dispatch('Word.Application')
doc = app.Documents.Open(docx_file) # เปิดไฟล์เวิร์ดขึ้นมา
doc.SaveAs(pdf_file,17) # บันทึกเป็น pdf
doc.Close() # บันทึกเสร็จแล้วก็ปิดด้วย
app.Quit()
.ExportAsFixedFormat() แทน สามารถใช้เพื่อบันทึกเป็น pdf ได้from win32com.client import Dispatch
excel_file = r'pot-au-feu.xlsx' # ไฟล์เอ็กซ์เซลที่ต้องการแปลง
pdf_file = r'ปอโตเฟอ.pdf' # ชื่อไฟล์ pdf ที่ต้องการบันทึก
app = Dispatch('Excel.Application')
wb = app.Workbooks.Open(excel_file)
wb.ExportAsFixedFormat(0,pdf_file)
wb.Close()
app.Quit()
.SaveAs() เพื่อทำการบันทึกไฟล์เป็น pdf ได้เช่นเดียวกับกรณีเวิร์ด เพียงแต่เลขรหัสสำหรับแปลงเป็น pdf นั้นคือ 32 ระหว่างอย่างสับสนกับของเวิร์ดfrom win32com.client import Dispatch
ppt_file = r'karaage.pptx' # ไฟล์พาวเวอร์พอยต์ที่ต้องการแปลง
pdf_file = r'คาราอาเงะ.pdf' # ชื่อไฟล์ pdf ที่ต้องการบันทึก
app = Dispatch('Powerpoint.Application')
ppt = app.Presentations.Open(ppt_file)
ppt.SaveAs(pdf_file,32)
ppt.Close()
app.Quit()
.SaveAs() ของพาวเวอร์พอยต์นั้นทรงพลังยิ่งกว่าของเวิร์ดหรือเอ็กซ์เซลเสียอีก นั่นเพราะนอกจากจะใช้บันทึกไฟล์เป็น pdf ได้แล้วยังสามารถบันทึกเป็นไฟล์รูปภาพได้เลย โดยแค่เปลี่ยนตัวเลขแทนโหมดเป็นชนิดภาพตามที่ต้องการเท่านั้น มีให้เลือกอยู่หลากหลาย| 16 | gif |
| 17 | jpg |
| 18 | png |
| 19 | bmp |
| 21 | tif |
| 32 |
from win32com.client import Dispatch
ppt_file = r'chikinnanban.pptx' # ไฟล์พาวเวอร์พอยต์ที่ต้องการแปลง
img_path = r'ไก่นัมบัง' # โฟลเดอร์ที่ต้องการเก็บภาพที่ได้จากการแปลง
app = Dispatch('Powerpoint.Application')
ppt = app.Presentations.Open(ppt_file)
ppt.SaveAs(img_path,18)
ppt.Close()
app.Quit()
ติดตามอัปเดตของบล็อกได้ที่แฟนเพจ