[ Python và ứng dụng ] Lập trình thư viện cho VBA bằng Python

Liên hệ QC

befaint

|||||||||||||
Tham gia
6/1/11
Bài viết
14,369
Được thích
19,329
Mình đọc tiêu đề là đã thấy hấp dẫn rồi á. :)

Mình có tìm hiểu qua vụ này thì thấy có vẻ rất ít thông tin, có thể Python vốn là mã nguồn mở, hoặc có thể đã dùng Python rồi thì không mấy ai để ý tới VBA nữa.
Đã có một số chương trình tích hợp Python với Excel, VBA nhưng đều cần cài đặt Python mới chạy được.

Mình vọc một hồi (hồi khá lâu...) ra cách tạo thư viện cho VBA bằng Python mà không khi phân phối không cần cài đặt Python trên máy tính sử dụng thư viện.
Đại khái một số thông tin như thế này:
* Đầu tiên, được gọi là "thư viện" vì không cần cài đặt Python trên máy tính sử dụng chúng.
* Bảo mật: tương đương Windows DLL.
Tìm hiểu qua thông tin thấy nó cũng là mã máy gì gì đó.
* Tốc độ: tùy vào khả năng viết code. Về cơ bản nó là Python mà.

Mình vọc hồi khá lâu vì vụ bảo mật kia. Hình như chưa có ai làm, hoặc không có gì đáng quan tâm, hoặc ai đó làm rồi mà họ không đăng lên internet nên mình chưa tìm thấy.

Mình làm một ví dụ, coi như động lực để bạn nào có hứng thú thì tự tìm hiểu nha. Tự khám phá ra mới hay mà.

Bài ví dụ: Lấy dữ liệu tỷ giá ngoại tệ từ trang web Vietcombank theo khoảng thời gian.
(Tiếp ví dụ ở bài https://www.giaiphapexcel.com/diendan/threads/lập-trình-trong-power-query-và-các-ví-dụ.157214/)

Chạy thử lấy dữ liệu 01 tháng trên máy tính của mình hết cỡ 1.8 giây.
Ai biết code Delphi thử làm bài ví dụ này xem ra sao nhỉ.

Các bạn tải file về nhớ đọc và làm theo hướng dẫn nhé. >> Tải File.

1633165995368.png
 
Lần chỉnh sửa cuối:
Em thấy anh @excel_lv1.5 có viết Python, 1 bài giống giống bài này, lấy dữ liệu cảng vụ hàng hải (bài #15)


Em có định làm bằng Power Query, nhưng không biết tham số ngày họ dấu ở đâu, nên chưa có giải pháp.
Python tôi xin chịu ... cũng hóng hớt chút thôi... qua đó hỏi họ xem sao hay thớt này hỏi @befaint xem tình hình sao
 
Upvote 0
Delphi có cái thư viện nào làm việc với Web, cào dữ liệu web không bạn?
Hình như có hết đấy ... cài Delphi đi mà xem code mẫu ngay chính trên máy đó
Xem hình sau nha ... học hết cái mớ đó là siêu đấy

2 năm trước tôi xem ko biết sử dụng luôn ... có cái mở lên cứ Build là lỗi sau này mới biết tại sao nó lỗi
Tìm nát google tải về đầy máy cuối cùng mới té ra trên máy mình đã có hết khi cài Delphi

1633439401649.png
 
Upvote 0
Mình ngồi nghiên cứu cả ngày mới in ra được chữ "hello world" ra màn hình cmd bằng python, thích thặc. Hi vọng học thêm 2 năm nữa sẽ viết được ứng dụng python như bài #1 của anh Befaint. :)
 
Upvote 0
Hihi để tối rảnh rỗi gà delphi code thử xem sao :p:p
 
Upvote 0
Mình ngồi nghiên cứu cả ngày mới in ra được chữ "hello world" ra màn hình cmd bằng python, thích thặc. Hi vọng học thêm 2 năm nữa sẽ viết được ứng dụng python như bài #1 của anh Befaint. :)
Tôi vọc được vài bữa thấy chậm tiến quá nên vứt luôn --=0
 
Upvote 0
Tôi vọc được vài bữa thấy chậm tiến quá nên vứt luôn --=0
Học Python đi sẻ rất nhanh đấy ... thư viện họ viết cho hết còn mình chỉ Việc .....xơi
quan trọng nhất là có biết ... hay ko thôi

File bài số 1 nén hết cả cái thư viện Python vào đó nên to quá ... đó là mới 1 code ...
nếu nhiều thì chưa biết sao vì mình ko sử dụng Py cho nên đoán bạy tí -0-0-0-
 
Upvote 0
Học Python đi sẻ rất nhanh đấy ... thư viện họ viết cho hết còn mình chỉ Việc .....xơi
quan trọng nhất là có biết ... hay ko thôi

File bài số 1 nó nén hết cả cái thư viện Python vào đó nên to quá ... đó là mới 1 code ...
nếu nhiều thì chưa biết sao vì mình ko sử dụng Py cho nên đoán bạy tí -0-0-0-
Với bạn thì có thể nhanh chứ với tôi thì không. Bởi chậm tiêu quá thôi trớt cho nhẹ đầu.
 
Upvote 0
Với bạn thì có thể nhanh chứ với tôi thì không. Bởi chậm tiêu quá thôi trớt cho nhẹ đầu.
Học cái gì cũng thế khó nhất là cái ngưỡng ban đầu nhập môn VD như khai báo và sử dụng vv...
qua cái cửa trên là từng bước viết tốt :D
 
Upvote 0
đã viết xong :clap: do mang mình yếu nên thới gian PY dao dộng từ 3-4 s
py.jpgDelphi.jpg
 
Upvote 0

File đính kèm

  • TestlaytigiaVCBythuyyeu99.zip
    2.9 MB · Đọc: 30
Lần chỉnh sửa cuối:
Upvote 0
Còn chuẩn hoá kết quả nữa chứ, như kia vẫn là string thôi à.
Nếu bỏ qua chuẩn hoá kết quả thì Python chạy chưa tới 1 giây á.
 
Upvote 0
Viết thẳng trên Python lấy 1 tháng máy tôi trung bình có 0.5s, lấy từ đâu năm tới giờ thì khoảng 3s, python nó lập trình đa luồng được, VBA hay delphi phải lập trình đa luồng mới so được với Python khi crawl data web, dùng VBA để gọi có thể chậm hơn tý1633535569737.png1633535558241.png
 
Upvote 0
Viết thẳng trên Python lấy 1 tháng máy tôi trung bình có 0.5s, lấy từ đâu năm tới giờ thì khoảng 3s, python nó lập trình đa luồng được, VBA hay delphi phải lập trình đa luồng mới so được với Python khi crawl data web, dùng VBA để gọi có thể chậm hơn týView attachment 267308View attachment 267307
Úp File cho mình thử chút xem có như bạn nói không 0.5s

Lưu ý máy mình ko cài Python
 
Upvote 0
Còn chuẩn hoá kết quả nữa chứ, như kia vẫn là string thôi à.
Nếu bỏ qua chuẩn hoá kết quả thì Python chạy chưa tới 1 giây á.
Cái này dễ mà, chẳng qua mới đầu mình không định up file để vậy cho dễ phân biệt
Viết thẳng trên Python lấy 1 tháng máy tôi trung bình có 0.5s, lấy từ đâu năm tới giờ thì khoảng 3s, python nó lập trình đa luồng được, VBA hay delphi phải lập trình đa luồng mới so được với Python khi crawl data web, dùng VBA để gọi có thể chậm hơn týView attachment 267308View attachment 267307
hihhi chạy multi thear thì cao cấp rồi anh nhưng mà để sync Display thì cũng mệt ah

ggg.jpg
 
Upvote 0
Web KT
Back
Top Bottom