Contents

วิธีรวม Python เข้ากับ Excel ได้อย่างราบรื่นโดยใช้ PyXLL

PyXLL เป็นเครื่องมือที่เชื่อมช่องว่างระหว่าง Microsoft Excel และ Python ช่วยให้คุณรวมโค้ด Python และฟังก์ชันการทำงานเข้ากับสเปรดชีต Excel ได้อย่างราบรื่น ด้วย PyXLL ทำให้ Excel กลายเป็นแพลตฟอร์มสำหรับการใช้ประโยชน์จากไลบรารีและความสามารถของ Python

PyXLL เป็นเครื่องมืออันทรงพลังที่ทำงานเป็น Add-in ของ Excel ทำให้ผู้ใช้สามารถสร้างฟังก์ชัน Python และมาโครได้โดยตรงภายในสภาพแวดล้อม VBA ของ Excel ด้วยการทำหน้าที่เป็นล่ามสำหรับโค้ดนี้ PyXLL ช่วยให้ผู้ใช้สามารถดำเนินการที่ซับซ้อน เช่น ระบบอัตโนมัติ การวิเคราะห์ข้อมูลขั้นสูง และการแสดงภาพข้อมูล ทั้งหมดนี้มาจากภายในขอบเขตที่คุ้นเคยของ Microsoft Excel

ภาพรวมของ PyXLL

PyXLL ทำงานโดยโฮสต์ล่าม Python ภายในแอปพลิเคชัน Excel เอง สิ่งนี้ทำให้โค้ด Python ของ PyXLL เข้าถึงข้อมูลและออบเจ็กต์ของ Excel ได้โดยตรง ซึ่งเป็นโซลูชันที่มีประสิทธิภาพเมื่อเทียบกับโค้ด Excel VBA แบบเดิม PyXLL เขียนด้วยภาษา C++ และใช้ประโยชน์จากเทคโนโลยีหลักเดียวกันกับ Excel โดยมอบข้อได้เปรียบด้านประสิทธิภาพสำหรับการรันสคริปต์ Python ภายในสภาพแวดล้อม Microsoft Office

การติดตั้งและตั้งค่า

หากต้องการติดตั้ง PyXLL ให้ไปที่ เว็บไซต์ PyXLL และดาวน์โหลด Add-in ตรวจสอบให้แน่ใจว่าเวอร์ชัน Python และเวอร์ชัน Excel ที่คุณเลือกตรงกับเวอร์ชันที่ติดตั้งในระบบของคุณ PyXLL ใช้งานได้กับ Excel เวอร์ชัน Windows เท่านั้น

/th/images/how-to-seamlessly-integrate-python-into-excel-using-pyxll-download.jpg

เมื่อเสร็จสิ้นกระบวนการดาวน์โหลด ให้เปิดอินเทอร์เฟซพร้อมรับคำสั่งและดำเนินการตามคำแนะนำต่อไปนี้:

 pip install pyxll 

เพื่อดำเนินการคำสั่งดังกล่าว คุณจำเป็นต้องติดตั้ง Pip ไว้ล่วงหน้าในระบบปฏิบัติการของคอมพิวเตอร์ของคุณ จากนั้นใช้แพ็คเกจ PyXLL เพื่อปรับใช้ PyXLL Add-in

 pyxll install

โปรดยืนยันว่าคุณได้ดาวน์โหลด Add-in ที่จำเป็นแล้วและระบุตำแหน่งของโปรแกรมโดยระบุเส้นทางไปยังไฟล์ zip หลังจากนั้นเราสามารถดำเนินการตามขั้นตอนการติดตั้งตามคำแนะนำบนหน้าจอได้

เริ่มต้นใช้งาน PyXLL

เมื่อติดตั้งปลั๊กอิน ให้เริ่มต้น Microsoft Excel การแจ้งเตือนเบื้องต้นจะปรากฏขึ้นเพื่อขอให้คุณเลือกระหว่างเริ่มทดลองใช้หรือซื้อใบอนุญาตก่อนที่จะใช้ PyXLL สิ่งสำคัญคือต้องทราบว่าเวอร์ชันทดลองใช้งานจะหยุดทำงานหลังจากผ่านไปสามสิบวัน ซึ่งจำเป็นต้องได้รับใบอนุญาตที่ถูกต้องเพื่อดำเนินการต่อไปได้

/th/images/how-to-seamlessly-integrate-python-into-excel-using-pyxll-prompt.jpg

โปรดคลิกที่ปุ่ม"เริ่มการทดลองใช้"เพื่อเริ่มการติดตั้ง Add-in ใน Microsoft Excel เมื่อติดตั้งสำเร็จ คุณจะสามารถเข้าถึงและใช้คุณสมบัติต่างๆ ภายในแอปพลิเคชันได้

โปรดคลิกที่ปุ่ม “เกี่ยวกับ PyXLL” ซึ่งอยู่บนแท็บตัวอย่าง PyXLL การดำเนินการนี้จะแสดงข้อมูลเกี่ยวกับเส้นทางการติดตั้งของ Add-in ตลอดจนเส้นทางไปยังการกำหนดค่าและไฟล์บันทึกที่เกี่ยวข้อง

/th/images/how-to-seamlessly-integrate-python-into-excel-using-pyxll-about.jpg

ตำแหน่งของไฟล์การกำหนดค่ามีความสำคัญ เนื่องจากคุณจะต้องเข้าถึงไฟล์นั้นในอนาคตเพื่อทำการปรับเปลี่ยน ดังนั้นจึงควรระมัดระวังที่จะเก็บเส้นทางของไฟล์ไว้ในหน่วยความจำของคุณ

การเปิดเผยฟังก์ชัน Python ไปยัง Excel

เพื่อรวมฟังก์ชัน Python เพื่อใช้ภายใน Microsoft Excel โดยใช้ตัวตกแต่ง xl\_func ซึ่งทำหน้าที่แจ้ง PyXLL เกี่ยวกับการลงทะเบียนที่ต้องการและความพร้อมใช้งานของฟังก์ชันสำหรับการใช้งานของผู้ใช้

หากต้องการรวมฟังก์ชัน Python fibonacci() เข้ากับ Microsoft Excel เป็นฟังก์ชันที่ผู้ใช้กำหนด (UDF) เราสามารถใช้ตัวตกแต่ง @xl\_func ในลักษณะต่อไปนี้:

 from pyxll import xl_func

@xl_func
def fibonacci(n):
  """
  This is a Python function that calculates the Fibonacci sequence.
  """
  if n < 0:
    raise ValueError("n must be non-negative")
  elif n == 0 or n == 1:
    return n
  else:
    return fibonacci(n-1) \+ fibonacci(n-2)

โปรดจัดเก็บสคริปต์ที่ให้มาโดยใช้ชื่อไฟล์".py"และตรวจสอบให้แน่ใจว่าได้รักษาบันทึกของไดเร็กทอรีที่บันทึกไว้ โดยระมัดระวังในการจัดทำเอกสารตำแหน่งของสคริปต์เพื่อใช้อ้างอิงในอนาคต

โปรดไปที่ไฟล์การกำหนดค่า PyXLL โดยใช้โปรแกรมแก้ไขข้อความที่เหมาะสม และไปยังส่วนที่กำหนดเป็น"pythonpath"โดยทั่วไป ตำแหน่งนี้ประกอบด้วยชุดไดเรกทอรีซึ่งทำหน้าที่เป็นแพลตฟอร์มสำหรับการตรวจสอบไลบรารี Python ของ PyXLL ควรรวมเส้นทางไดเร็กทอรีที่ครอบคลุมซอร์สโค้ดของฟังก์ชัน Fibonacci ไว้ภายในรายการนี้ด้วย

/th/images/how-to-seamlessly-integrate-python-into-excel-using-pyxll-modules-folder-path.jpg

เพิ่มโมดูลของคุณโดยไปที่ส่วน"โมดูล"และป้อนชื่อโมดูลในรายการ ในกรณีนี้ เนื่องจากเราบันทึกไฟล์ของเราเป็น fibonacci.py เราจึงเพิ่มชื่อ"fibonacci"เข้าไปในรายการ

/th/images/how-to-seamlessly-integrate-python-into-excel-using-pyxll-modules.jpg

ในการใช้ฟังก์ชันที่ประดับด้วยมัณฑนากร “@xl\_func” ภายในสภาพแวดล้อมการเขียนโปรแกรมของ Microsoft Excel ก่อนอื่นต้องตรวจสอบให้แน่ใจก่อนว่าฟังก์ชันดังกล่าวถูกเปิดเผย เพื่อให้บรรลุเป้าหมายนี้ ให้ไปที่"แท็บตัวอย่าง PyXLL"ภายใน Excel จากนั้นกดปุ่ม"โหลด PyXLL ใหม่"ด้วยการดำเนินการนี้ การแก้ไขใดๆ ที่ทำกับไฟล์การกำหนดค่าจะได้รับการซิงโครไนซ์ ดังนั้น ผู้ใช้จึงอาจใช้ฟังก์ชัน “fibonacci” ที่ใช้ Python ได้เหมือนกับที่ใช้สูตร Excel ทั่วไป

/th/images/how-to-seamlessly-integrate-python-into-excel-using-pyxll-excel-calling.jpg

คุณมีความยืดหยุ่นในการสร้างฟังก์ชันได้ไม่จำกัดจำนวน ซึ่งสามารถรวมเข้ากับ Microsoft Excel ได้อย่างราบรื่นโดยปฏิบัติตามวิธีการที่สอดคล้องกัน

การส่งผ่านข้อมูลระหว่าง Excel และ Python

PyXLL ช่วยให้สามารถรวมไลบรารี Python ภายนอก เช่น Pandas เข้าด้วยกัน ทำให้สามารถสื่อสารได้อย่างราบรื่นระหว่าง Python และ Excel ตัวอย่างหนึ่งของสิ่งนี้คือการใช้ Pandas เพื่อสร้าง DataFrame ที่สร้างขึ้นแบบสุ่ม ซึ่งสามารถส่งต่อไปยัง Excel ในภายหลังผ่านความสามารถของ PyXLL เพื่อให้แน่ใจว่า Pandas ได้รับการติดตั้งอย่างถูกต้องบนระบบของคุณ คุณอาจอ้างอิงคำแนะนำในการติดตั้งที่ได้รับจากนักพัฒนา เมื่อติดตั้ง Pandas สำเร็จแล้ว คุณสามารถทดลองกับข้อมูลโค้ดที่กล่าวมาข้างต้นเพื่อดูการแลกเปลี่ยนข้อมูลระหว่าง Python และ Excel ที่อำนวยความสะดวกโดย PyXLL

 from pyxll import xl_func
import pandas as pd
import numpy as np

@xl_func("int rows, int columns: dataframe<index=True>", auto_resize=True)
def random_dataframe(rows, columns):
   data = np.random.rand(rows, columns)
   column_names = [chr(ord('A') \+ x) for x in range(columns)]
   return pd.DataFrame(data, columns=column_names) 

เพื่อให้สามารถเข้าถึงโมดูลนี้และฟังก์ชันต่างๆ ภายใน Microsoft Excel ได้ จำเป็นต้องปฏิบัติตามขั้นตอนเฉพาะ เมื่อดำเนินการเสร็จแล้ว คุณสามารถพยายามเรียกใช้ฟังก์ชัน random\_dataframe ได้ในลักษณะเดียวกับสูตร Excel อื่นๆ

 =random_dataframe(10,5) 

คุณมีความยืดหยุ่นในการปรับเปลี่ยนจำนวนแถวและคอลัมน์ตามความต้องการของคุณ

/th/images/how-to-seamlessly-integrate-python-into-excel-using-pyxll-pandas.jpg

คุณยังอาจเลือกที่จะรวมเฟรมข้อมูลที่กำหนดไว้ล่วงหน้าภายในสคริปต์ Python โดยใช้ความสามารถของ Pandas เพื่อให้สามารถนำเข้าและรวมข้อมูลจาก Microsoft Excel ได้อย่างราบรื่น

ข้อจำกัดของ PyXLL

PyXLL ซึ่งเป็นไลบรารี Python ที่เชี่ยวชาญในการจัดการ XLL (Excel Add-Ins) ได้รับการปรับแต่งให้ทำงานอย่างเหมาะสมภายในระบบปฏิบัติการ Windows ประสิทธิภาพอาจถูกจำกัดเมื่อใช้บนแพลตฟอร์มที่ไม่ใช่ Windows เนื่องจากพารามิเตอร์การออกแบบเฉพาะที่มุ่งตอบสนองความแตกต่างของสภาพแวดล้อม Windows

เพื่อให้ผู้ใช้สามารถใช้สเปรดชีตที่ใช้ประโยชน์จากความสามารถของ PyXLL ได้ จำเป็นสำหรับพวกเขาที่จะมีการติดตั้ง Python ที่ใช้งานได้บนอุปกรณ์ของตน ไม่ว่าจะมีการพึ่งพาที่จำเป็นเท่านั้นหรือโดยรวมรันไทม์ของ Python ไว้ในบันเดิลที่มาพร้อมกับสเปรดชีตด้วย ดังนั้นผู้ที่ต้องการใช้ฟังก์ชันดังกล่าวต้องแน่ใจว่าได้ติดตั้ง Python ไว้ล่วงหน้าในระบบแล้ว

การนำทางที่ซับซ้อนของ PyXLL จำเป็นต้องมีความเชี่ยวชาญในการเขียนโปรแกรม Python เช่นเดียวกับความเข้าใจเกี่ยวกับโมเดลออบเจ็กต์ของ Excel ซึ่งอาจก่อให้เกิดความท้าทายสำหรับผู้ใช้ที่ไม่คุ้นเคยกับแนวคิดทั้งสอง ดังนั้นผู้ที่ต้องการใช้ศักยภาพของห้องสมุดแห่งนี้อย่างเต็มที่อาจต้องจัดสรรความพยายามอย่างมากในการแสวงหาความเชี่ยวชาญพื้นฐานในทั้งสองสาขา

ค่าใช้จ่ายสำหรับการใช้ PyXLL อาจแตกต่างกันไปตามพารามิเตอร์หลายประการ เช่น ขนาดของฐานผู้ใช้ ขอบเขตการใช้งาน และข้อกำหนดเฉพาะที่ควบคุมการอนุญาต เนื่องจากสินค้าที่อยู่ในหมวดหมู่สินค้าโภคภัณฑ์ที่ต้องชำระเงิน จึงจำเป็นต้องคำนึงถึงองค์ประกอบเหล่านี้เมื่อพิจารณาภาระผูกพันทางการเงินที่เกี่ยวข้องกับการใช้โซลูชันซอฟต์แวร์นี้

คุณควรใช้ฟังก์ชัน Excel ต่อไปหรือไม่

ทางเลือกระหว่างการใช้ฟังก์ชัน Excel ดั้งเดิมและการรวมไลบรารีภายนอก เช่น PyXLL ท้ายที่สุดจะขึ้นอยู่กับวัตถุประสงค์เฉพาะที่เราปรารถนาจะบรรลุ แม้ว่าโดยทั่วไปจะแนะนำให้ใช้ฟังก์ชันเนทิฟทุกครั้งที่เป็นไปได้ แต่ก็มีงานที่ซับซ้อนบางอย่างที่เกินขีดความสามารถของฟังก์ชันที่ฝังอยู่ใน Excel ในกรณีเช่นนี้ การใช้เครื่องมือพิเศษอย่าง PyXLL อาจเป็นทางเลือกที่มีประสิทธิภาพสูง

การรวมไลบรารี Pandas เข้ากับ PyXLL ทำให้เกิดการผสมผสานที่ยอดเยี่ยม โดยมีฟังก์ชันการวิเคราะห์ที่แข็งแกร่งและความสามารถในการประมวลผลข้อมูลที่น่าประทับใจเพื่อปรับปรุงประสบการณ์ผู้ใช้