Python với Excel - Mở đầu và cài đặt thư viện

Liên hệ QC

befaint

|||||||||||||
Tham gia
6/1/11
Bài viết
14,498
Được thích
19,668
1. Giới thiệu
Hiện tại, Python có khá nhiều thư viện để làm việc với Excel, có những công cụ rất hay (tạo user define functions cho Excel có ghi chú, tạo dynamic array (hay Function cho kết quả như Sub)...)

Một số thư viện Python xem ở link này: Python - Excel
Tham khảo thêm: xlwings

2. Cài đặt thư viện
Ở phạm vi các bài viết ở đây sẽ áp dụng với máy tính sử dụng hệ điều hành Windows và sử dụng thư viện openpyxl

- Cài đặt phần mềm Python (hoàn toàn miễn phí, dung lượng nhỏ) lên máy tính: Python Windows
Chọn phiên bản phù hợp (x86, x64) với máy tính (hiện tại đang là version 3.7.x)

- Thư viện Python để làm việc với MS Excel: openpyxl
Cách cài đặt: Sau khi cài đặt thành công Python ở bước trên thì mở Command Prompt của Windows lên và gõ lệnh sau rồi nhấn enter:
Mã:
py -m pip install openpyxl

217751

- Khác: Khi cần cài đặt thêm thư viện Python nào để sử dụng, mở Command Prompt của Windows lên và nhập theo mẫu lệnh rồi nhấn enter:
Mã:
py -m pip install tên_module_Python
Ví dụ cần cài đặt module requests để gửi các loại yêu cầu HTTP:
Mã:
py -m pip install requests

217750

3. Sử dụng:
Các chương trình (project) ở đây có phạm vi nhỏ, đơn giản nên sẽ dùng luôn trình soạn thảo IDLE của Python để viết code và chạy code.

Định dạng file ở dạng *.py

Mở file bằng IDLE:
217753


Chạy module: Tại cửa sổ IDLE nhấn phím F5 (hoặc vào menu Run >> Run Module)

217754
 
Lần chỉnh sửa cuối:
Chia sẽ vụ cài đặt thư viện :) .
Vất vả đêm qua để cài cái thư viện openPYXL. Install ngon lành xong import không ra. Tìm kiếm một hồi mới biết là do MacOS nó đã có sẳn Python 2.7 trong ứng dụng cài đặt rồi nên khi dùng lệnh: 'sudo pip install openpyxl' thì nó cài ngay vô folder của 2.7. Mình thì mới cài bản python 3.7 nên nó không tìm thấy thư viện.==> đơn giản chỉ đổi thành: sudo pip3 install openpyxl mới sử dụng được. Amateur vụ này nên cài đặt vất vả thật.
Xem qua mấy cái cơ bản của Python thấy hay thật. Như cách xử lý chuỗi của nó: xử các kiểu tách chuỗi, thay chuỗi v.v.. chỉ cần thêm mấy ký hiệu \n, ; ....là ra kết quả.
Em viết bài nói rõ là áp dụng với Windows mà :D
Anh dùng Mac thì chắc rành lắm rồi chứ. Cách dùng terminal trên Mac nó tương tự trên Linux :(
Chỗ pip với pip3 thì anh vẫn dùng mẫu lệnh của em được, thêm sudo vào trước kiểu như này:
PHP:
 sudo python3 -m pip install <package_name>
# python3 ứng với môi trường Python version 3.x
 
Lần chỉnh sửa cuối:
Upvote 0
em chào các anh chị
em cài đặt python phiên bản mới nhất 3.10 xong rồi, sau đó cài đặt thư viện requests nhưng bị báo lỗi, không biết lỗi gì ?
1676336967355.png
mong anh chị giúp đỡ, em cảm ơn ạ
 
Lần chỉnh sửa cuối:
Upvote 0
kính gửi các anh chị:

em đang cài đặt thư viện beautiful soup4 nhưng bị lỗi, em không biết vì sao lỗi, mong anh chị giúp đỡ ạ , em cảm ơn

em cài đặt theo 2 cú pháp đều không được

Pip install beautifulsoup4

Pip3 install beautifulsoup4

1685959053641.png
 
Upvote 0
Upvote 0
em có làm theo hướng dẫn của video trong link sau:
Liên kết: https://www.youtube.com/watch?v=zVHcmacRThs


nhưng đến phần code sau thì bị báo lỗi, em không biết sao bị lỗi; mong anh chị giúp ạ, em cảm ơn

for item in data:
print(item.a.get('title'))
Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
print(item.a.get('title'))
NameError: name 'item' is not defined. Did you mean: 'iter'?
 
Upvote 0
Upvote 0
python nhiều thứ hay đó tuy nhiên có nhiều thư viện mất $ cho nó thì mới hay

chỉ kẹt phân phối nhỏ lẻ sau khi viết thôi ... nếu đóng gói vào Exe file to còn xuất DLL cũng được nhưng trên này chưa thấy ai viết

hình như mua thư viện của bên thứ 3 gì đó mới xuất DLL được

Chốt lại cố giắng mà học thêm bất cứ 1 ngôn ngữ hiện đại nào ngoài VBA là tốt .. phù hợp với xu hướng phát triển

còn thuần VBA lỗi thời và tù túng loanh quanh như gà chạy quanh cái cối xay lúa à :p:D
 
Upvote 0
python nhiều thứ hay đó tuy nhiên có nhiều thư viện mất $ cho nó thì mới hay

chỉ kẹt phân phối nhỏ lẻ sau khi viết thôi ... nếu đóng gói vào Exe file to còn xuất DLL cũng được nhưng trên này chưa thấy ai viết

hình như mua thư viện của bên thứ 3 gì đó mới xuất DLL được

Chốt lại cố giắng mà học thêm bất cứ 1 ngôn ngữ hiện đại nào ngoài VBA là tốt .. phù hợp với xu hướng phát triển

còn thuần VBA lỗi thời và tù túng loanh quanh như gà chạy quanh cái cối xay lúa à :p:D
Nhiều lúc nghĩ phải học thêm ngôn ngữ nào đó ngoài vba nhưng nghiệt nỗi là đầu óc hơi cỗi rồi, nhét vô chật vật quá.
 
Upvote 0
Nhiều lúc nghĩ phải học thêm ngôn ngữ nào đó ngoài vba nhưng nghiệt nỗi là đầu óc hơi cỗi rồi, nhét vô chật vật quá.
cố giắng lên nó không quá khó khi bước qua cái cửa khai báo nhập môn ....

có con ChatGPT nó sẽ rút ngắn khoãng cách giữa người mới biết căn bản và người có nhiều năm kinh nghiệm khoãng cách lại gần nhau hơn

Nhưng ChatGPT nó chỉ cho hướng code còn lại ta phải có tư duy logis lắp ghép và nêu vấn đề cần xử lý cho nó là xong

như cái cảnh báo Notifycation tôi hỏi nó chỉ cho hướng code xong mò qua lại chút là xong thôi

các hàm nhỏ lẻ ChatGPT viết rất tốt ... còn lại là ta xử lý nó thôi
 
Upvote 0
hỏi phát ChatGPT nó cho hướng code ... phần còn lại phụ thuộc chính khả năng của ai đó thôi

1686024711546.png

Mã:
from ctypes import *

# Định nghĩa các kiểu dữ liệu cho hàm API
# Ví dụ: khai báo hàm API MessageBoxA
user32 = windll.user32
MessageBoxA = user32.MessageBoxA
MessageBoxA.argtypes = (c_void_p, c_char_p, c_char_p, c_uint)
MessageBoxA.restype = c_int

# Định nghĩa hàm API xuất ra DLL
def show_message_box():
    MessageBoxA(None, b"Hello from Python!", b"Message", 0)

# Export hàm API
def DllMain():
    return True
DllMain.__dict__["show_message_box"] = show_message_box

if __name__ == "__main__":
    DllMain()


Với ví dụ trên, bạn có thể tạo một DLL từ mã Python và gọi hàm show_message_box từ bên ngoài DLL.

Lưu ý rằng việc viết DLL và sử dụng các hàm API từ Python yêu cầu một số kiến thức về lập trình C và quản lý bộ nhớ.
 
Upvote 0
hỏi phát ChatGPT nó cho hướng code ... phần còn lại phụ thuộc chính khả năng của ai đó thôi

View attachment 291095

Mã:
from ctypes import *

# Định nghĩa các kiểu dữ liệu cho hàm API
# Ví dụ: khai báo hàm API MessageBoxA
user32 = windll.user32
MessageBoxA = user32.MessageBoxA
MessageBoxA.argtypes = (c_void_p, c_char_p, c_char_p, c_uint)
MessageBoxA.restype = c_int

# Định nghĩa hàm API xuất ra DLL
def show_message_box():
    MessageBoxA(None, b"Hello from Python!", b"Message", 0)

# Export hàm API
def DllMain():
    return True
DllMain.__dict__["show_message_box"] = show_message_box

if __name__ == "__main__":
    DllMain()


Với ví dụ trên, bạn có thể tạo một DLL từ mã Python và gọi hàm show_message_box từ bên ngoài DLL.

Lưu ý rằng việc viết DLL và sử dụng các hàm API từ Python yêu cầu một số kiến thức về lập trình C và quản lý bộ nhớ.
Khó quá, cho qua !
 
Upvote 0
kính gửi các anh chị
em đang mày mò lấy dữ liệu qua thẻ và class dùng python (link bên dưới)
làm cách nào để mình biết là thẻ và class mình cần lấy nội dung là gì vậy các anh chị? em dùng google chorm

link: https://s.cafef.vn/lich-su-kien.chn

em đang test code python bên dưới nhưng bị lỗi, mong anh chị giúp ạ

1686101174581.png

import requests
from bs4 import BeautifulSoup
r=requests.get('https://s.cafef.vn/lich-su-kien.chn')
xuly=BeautifulSoup(r.text,'html.parser')
data = xuly.find_all("td")
#print(data)
for i in data: print(i.a.get('title'))
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom