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:
Anh befaint cho em hỏi, python có đóng gói thành file EXE để tự chạy trên máy tính không có cài python được không anh?
 
Upvote 0
Anh befaint cho em hỏi, python có đóng gói thành file EXE để tự chạy trên máy tính không có cài python được không anh?
Để tôi trả lời giúp nhé:
Đương nhiên là có.
1. Gói PyInstaller (Gói này không cần cài Python)
2. Gói AutoPyToEXE
3. Dùng thêm trình cài đặt NSIS

befaint

Cách hướng dẫn cài đặt trên khá sai sót:
Vì Python có nhiều phiên bản:
Win64 bit có thể cài đặt tất cả phiên bản 2.7.x, 3.6.x, 3.7.x
Nếu đặt Path Môi trường là 3.6.x thì Python mặc định trên Window sẽ là 3.6.x

Lúc này chỉ cần dùng câu lệnh trong Command Prompt:
Cài đặt gói:
Bash:
pip install <Package Module>
Cài phiên bản gói:
Bash:
pip install <Package Module>=1.1.2
Update gói:
Bash:
pip install --upgrade <Package Module>
hoặc
Bash:
pip install -u <Package Module>

Các Python phiên bản khác:
Cài đặt gói:
Bash:
py -2.7 -m pip install <Package Module>
Update gói:
Bash:
py -2.7 -m pip install --upgrade <Package Module>
hoặc
Bash:
py -2.7 -m pip install -u <Package Module>

Và khi lập trình với Python thì sử dụng môi trường ảo Virtual Environment để quản lý dự án một cách đơn giản thay vì phải cài đặt các Module vào Môi trường gốc. Nếu cài quá nhiều gói sẽ tốn kém tài nguyên lưu trữ.
Cài môi trường ảo:
Bash:
pip install virtualenv

các bước sau đó thì ....

Theo tôi thì anh chưa có bài hướng dẫn sử dụng Python từ cơ bản, không ai can đảm đọc sâu hơn.
Không thì cũng cần một link nào đó dẫn đến bài hướng dẫn.
 
Lần chỉnh sửa cuối:
Upvote 0
Theo tôi thì anh chưa có bài hướng dẫn sử dụng Python từ cơ bản, không ai can đảm đọc sâu hơn.
Cảm ơn bạn góp ý.

Phạm vi ở đây, mình chỉ mạn phép trình bày đơn giản nhất, mọi người chỉ cần làm theo từng bước như vậy để áp dụng cho trường hợp cụ thể.

Còn tài liệu chi tiết thì có docs của Python, của module, của thư viện rồi. Ai muốn tìm hiểu kỹ hơn thì đọc tài liệu đó.
 
Upvote 0
Nếu ai đó đọc qua Docs của Python thì bài viết không còn ý nghĩa, chỉ để trưng bày. Vì Docs Python cứ như một cuốn tiểu thuyết dài tập.
Đọc xong thành "thánh" Python ngay rồi.
Nếu hướng dẫn họ đọc Docs của Python, đơn giản ta chỉ cần hướng dẫn học đọc các Docs của các gói.

Còn nếu ai đó trên GPE chưa biết gì về Python, thì đọc bài viết này thì quá khó cho họ. Không có sự dẫn dắt từ căn bản.

Cần chỉ cho họ một Phần mềm để quản lí và viết dự án nhanh hơn thay vì cái IDE thô của Python.
Ít nhất cần hướng dẫn đến mức độ biết đến file requirements.txt và tạo nó trong dự án là gì.

Sau đó mọi chuyện có thể tiếp tục.

Thấy anh đăng nhiều bài Python với Excel mà không thấy bài nào là bài bắt đầu.
Và trong bài viết này không thấy link dẫn đến các bài khác. Giống như trò chơi đi tìm và ghép mảnh để hoàn thành bức ảnh, vậy càng thêm khó.
 
Upvote 0
Python là một ngôn ngữ dễ học vô cùng. Nếu tôi không nhớ lầm thì chính người viết bài #3 đã nói chỉ cần vài ngày là học xong.

Đối với những bạn chỉ có căn bản sơ về máy tính, muốn học thì chỉ cần cài và bắt đầu học. Hết.
Các khái niệm căn bản băn đầu là các loại dữ liệu. Khái niệm cao hơn một chút là qualifyer (for, if ở cuối câu). Và khái niệm cao nhất là lambda (tự đệ quy và giảm thiểu code) - khái niệm này hiện tại không cần lo tới, lúc cao cấp hẵn tính.
Tính toán thiệt hơn này nọ chỉ làm chậm trễ tiến trình học. (*)

Đối với những bạn đã có nhiều kinh nghiệm về lập trình thì những lời khuyên cài đặt thêm này nọ hoàn toàn không bổ ích gì. Bởi vì các bạn thừa khả năng để tự tìm hiểu mình cần làm gì. (**)

(*) chỉ cần lên net download Python 3 về, cài. Nếu quen dùng cmd mode thì xài luôn IDLE. Nếu thích IDE hoành tráng thì download thêm Pycharm.
Không cần sửa soạn thêm gì nữa. Lúc làm bài tập, nơi ra bài tập bảo cài thêm cái gì thì cài. Về sau này, khi đã biết kha khá rồi hãy tính đến những chuyện khác.

(**) Điển hình là virtual environment, nếu bạn đã có kinh nghiệm lập trình thì cũng biết nó là căn bản của dân Unix. Nếu bắt đầu làm project thì nó cần thiết để dân Unix áp dụng version control (quản lý phiên bản phần mềm).
 
Upvote 0
Tôi thì nghĩ, muốn học và bàn sâu python thì sang diễn đàn python (nên chăng thế, và cũng nên thế thì mới chuyên, có đầy luôn: https://www.google.com/search?q=diễn+đàn+python+việt&rlz=1C1CHBD_enDE757DE757&oq=diến+đàn+python&aqs=chrome.1.69i57j0l2.9015j1j7&sourceid=chrome&ie=UTF-8 )
Còn Excel , VBA với Excel thì là với diễn đàn GPE này
Thớt có nói về liên hệ với Excel mà.
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
Chỉ là lộn góc thôi. Cái này đáng lẽ phải ở trong góc "Excel và các ngôn ngữ lập trình khác"

@Thớt: nên nhờ các ặc mìn chuyển bài qua bên đó.
 
Upvote 0
Python là một ngôn ngữ dễ học vô cùng. Nếu tôi không nhớ lầm thì chính người viết bài #3 đã nói chỉ cần vài ngày là học xong.

Đối với những bạn chỉ có căn bản sơ về máy tính, muốn học thì chỉ cần cài và bắt đầu học. Hết.
Các khái niệm căn bản băn đầu là các loại dữ liệu. Khái niệm cao hơn một chút là qualifyer (for, if ở cuối câu). Và khái niệm cao nhất là lambda (tự đệ quy và giảm thiểu code) - khái niệm này hiện tại không cần lo tới, lúc cao cấp hẵn tính.
Tính toán thiệt hơn này nọ chỉ làm chậm trễ tiến trình học. (*)

Đối với những bạn đã có nhiều kinh nghiệm về lập trình thì những lời khuyên cài đặt thêm này nọ hoàn toàn không bổ ích gì. Bởi vì các bạn thừa khả năng để tự tìm hiểu mình cần làm gì. (**)

(*) chỉ cần lên net download Python 3 về, cài. Nếu quen dùng cmd mode thì xài luôn IDLE. Nếu thích IDE hoành tráng thì download thêm Pycharm.
Không cần sửa soạn thêm gì nữa. Lúc làm bài tập, nơi ra bài tập bảo cài thêm cái gì thì cài. Về sau này, khi đã biết kha khá rồi hãy tính đến những chuyện khác.

(**) Điển hình là virtual environment, nếu bạn đã có kinh nghiệm lập trình thì cũng biết nó là căn bản của dân Unix. Nếu bắt đầu làm project thì nó cần thiết để dân Unix áp dụng version control (quản lý phiên bản phần mềm).

Vậy là anh nhớ lầm rồi, hình như người ta nói học mới một ngôn ngữ lập trình chỉ mất vài giờ thôi, đâu có tính bằng đơn vị "ngày" đâu.
@thớt em lò mò cả ngày trời mới in được chữ hello world ra màn hình sướng ghê, đoạn đường tiếp theo em cần học gì để làm việc với excel anh chỉ em với.
 
Upvote 0
Vậy là anh nhớ lầm rồi, hình như người ta nói học mới một ngôn ngữ lập trình chỉ mất vài giờ thôi, đâu có tính bằng đơn vị "ngày" đâu.
@thớt em lò mò cả ngày trời mới in được chữ hello world ra màn hình sướng ghê, đoạn đường tiếp theo em cần học gì để làm việc với excel anh chỉ em với.
Ờ chắc lầm.
Nhưng mà bạn 1 ngày đã in ra được là hơn tôi rồi. Tôi lò mò mấy ngày mới cài đặt được lên cái máy Mac cùi của tôi; vừa giở IDLE ra thì nó bảo cái phần mềm gì đó cũ quá... Tức mình nhảy qua Pycharm. Trước mắt thì chưa có vấn đề. Còn cái vụ Virtual Env gì gì đó chắc đợi năm sau.
 
Upvote 0
thấy trang sau nó keo Python là: Ngôn ngữ thông dịch
vậy là tạm keo code chạy tới đâu thì nó dịch tới đó .... hên thì phám trúng he ===\.-0-0-0-Tức là nó qua khâu trung gian khi xử lý thì tại sao nó có thể chạy nhanh hơn mã máy được ta ( Mã máy là chạy không qua thông dịch .... không biết nói vậy đúng ko nữa ???)

Python.JPG
https://quantrimang.com/python-la-gi-tai-sao-nen-chon-python-140518
 
Upvote 0
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)...)

Bạn befaint hoặc anh em nào khác đã trải nghiệm về Python thì cho tôi một vài gợi ý định hướng về ứng dụng Python trong việc quản lý CSDL nhé. Ví dụ tôi muốn làm một ứng dụng quản lý bán hàng đơn giản, CSDL có thể Excel, Access hoặc MySQL... vậy có thể dùng Python kết hợp với công cụ nào khác để xây dựng cái ứng dụng này được không bạn (ứng dụng desktop hay Web cũng được).
 
Lần chỉnh sửa cuối:
Upvote 0
ongke0711 Anh có cái File QLBH nào đơn giản không cho em xin tham khảo với hihihi
 
Upvote 0
Bạn befaint hoặc anh em nào khác đã trải nghiệm về Python thì cho tôi một vài gợi ý định hướng về ứng dụng Python trong việc quản lý CSDL nhé. Ví dụ tôi muốn làm một ứng dụng quản lý bán hàng đơn giản, CSDL có thể Excel, Access hoặc MySQL... vậy có thể dùng Python kết hợp với công cụ nào khác để xây dựng cái ứng dụng này được không bạn (ứng dụng desktop hay Web cũng được).
Cái này em chịu rồi anh ơi.
Giờ anh kêu em làm smart home cho anh thì may ra làm được :(
 
Upvote 0
.. vậy có thể dùng Python kết hợp với công cụ nào khác để xây dựng cái ứng dụng này được không bạn (ứng dụng desktop hay Web cũng được).
Trong câu hỏi của bác đã có câu trả lời rồi: bác biết Python, Excel, Access , MySQL, đơn giản hơn thì SQLite3.
Với Python thì keyword quyết định thành công. Bác đã vào Python thì tìm 90% là có. Công việc còn lại của bác là sáng kiến Ứng dụng.

Viết ứng dụng GUI với PyQt5 (Nhẹ đơn giản , nhưng thô - khi cài đặt thì exe có sẵn trong module ) hoặc Qt Creator (Mạnh nhất trong các ứng dụng lập trình GUI sử dụng QML, VSTO xếp sau QT) ( 25GB tải / 37GB ổ đĩa)
Lập trình trên QT ví dụ như lập trình trên UserForm, kéo các Toolbox sẵn có vào giao diện, tùy biến, đa dạng. Và viết code ngay trên QT, và xuất ứng dụng.

(hoặc tkinder hoặc Kivy)
 
Upvote 0
Bạn befaint hoặc anh em nào khác đã trải nghiệm về Python thì cho tôi một vài gợi ý định hướng về ứng dụng Python trong việc quản lý CSDL nhé. Ví dụ tôi muốn làm một ứng dụng quản lý bán hàng đơn giản, CSDL có thể Excel, Access hoặc MySQL... vậy có thể dùng Python kết hợp với công cụ nào khác để xây dựng cái ứng dụng này được không bạn (ứng dụng desktop hay Web cũng được).
CSDL dạng Liên Hệ (Relational)?
Gú gồ 2 từ khoá "Object Relational Mapper" và "DB API" (đương nhiên là bạn phải gú gồ trong ngữ cảnh Python)
Nếu bạn gú gô thành công thì sẽ được 1 mớ thư viện để dùng. Có lẽ cái thư viện được thích nhất hiện nay là SQLAlchemy.
Nhưng để thực sự làm việc với CSDL, bạn cần phải biết về Pandas, một thư viện quan trọng về dữ liệu.

(Đã nói là Python dễ ợt. Mấy cái thư viện của nó mới phải học phờ râu)
 
Upvote 0
Trong câu hỏi của bác đã có câu trả lời rồi: bác biết Python, Excel, Access , MySQL, đơn giản hơn thì SQLite3.
Với Python thì keyword quyết định thành công. Bác đã vào Python thì tìm 90% là có. Công việc còn lại của bác là sáng kiến Ứng dụng.
Viết ứng dụng GUI với PyQt5 (Nhẹ đơn giản , nhưng thô - khi cài đặt thì exe có sẵn trong module ) hoặc Qt Creator (Mạnh nhất trong các ứng dụng lập trình GUI sử dụng QML, VSTO xếp sau QT) ( 25GB tải / 37GB ổ đĩa)
Lập trình trên QT ví dụ như lập trình trên UserForm, kéo các Toolbox sẵn có vào giao diện, tùy biến, đa dạng. Và viết code ngay trên QT, và xuất ứng dụng.
(hoặc tkinder hoặc Kivy)

Cảm ơn bạn đã gợi ý các tool nếu muốn xây dựng ứng dụng với Python. Sau khi google thì đúng là để thiết kế UI thì QT Designer nó có nhiều widget và đẹp lung linh giống C# và cái dung lượng file nhìn oải cho cái laptop của mình quá (SSD 256) :p

CSDL dạng Liên Hệ (Relational)?
Gú gồ 2 từ khoá "Object Relational Mapper" và "DB API" (đương nhiên là bạn phải gú gồ trong ngữ cảnh Python)
Nếu bạn gú gô thành công thì sẽ được 1 mớ thư viện để dùng. Có lẽ cái thư viện được thích nhất hiện nay là SQLAlchemy.
Nhưng để thực sự làm việc với CSDL, bạn cần phải biết về Pandas, một thư viện quan trọng về dữ liệu.

(Đã nói là Python dễ ợt. Mấy cái thư viện của nó mới phải học phờ râu)

Đúng như anh nói, google xong choáng váng luôn. Pandas, Numpy, rồi chọn ORM ...Đúng là đống kiến thức mới này khủng quá, không biết học tới bao giờ mới viết được ứng dụng đây :).

Cảm ơn mọi người đã góp ý.
 
Upvote 0
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:

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ả.
 
Upvote 0
oh ... MacOS nó đã có sẳn Python 2.7 .... Nó có sẳn luôn trong MacOS hay sao ???
 
Upvote 0
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ả.
Không biết bác có đọc qua bài #3 hay chưa, vì bài đấy có nhắc đến Path môi trường.
Trên MacOS cũng cần đặt như vậy:
Hướng dẫn đặt Path cho phiên bản Python trên MacOS
 
Upvote 0
Web KT

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

Back
Top Bottom