Tải hóa đơn điện tử (https://hoadondientu.gdt.gov.vn/) Excel Vba (2 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

ongke0711

Thành viên gắn bó
Tham gia
7/9/06
Bài viết
2,279
Được thích
3,038
Giới tính
Nam
Chào các bạn,
Tôi ngồi mò mẫm mấy ngày mới tìm được cách tải hóa đơn điện tử từ trang https://hoadondientu.gdt.gov.vn/. Cách này có thể không chuyên nghiệp nhưng cũng giải quyết được vấn đề tải hóa đơn hàng loạt từ trang trên và ghi xuống Excel theo định dạng dễ tổng hợp dữ liệu sau này.
- Tốc độ không nhanh như các ứng dụng python siêu nhanh.
- Chưa tìm được các link tải file .xml hoặc .html
- Chưa trải nghiệm qua các định dạng hóa đơn điện tử của các nhà cung cấp giải pháp khác nhau nên sẽ không đảm bảo chạy đúng 100%.
- Chưa biết cách tích hợp code vượt Captcha của (Python, C#..) vào VBA nên phải nhập Captcha thủ công.
Nói chung cái tool cũng giải quyết được việc tải hóa đơn hàng loạt :D .
Tôi sẽ upload file demo không khóa (có khóa cũng như không) sau vì code còn lộn xộn lắm. Các bạn xem qua và đóng góp cách xử lý tốt hơn, gọn hơn nhé.


*** 12/10/2024: Cập nhật sửa một đống lỗi.
*** 15/10/2024: Cập nhật sửa lỗi Null và nhập ngày tháng.
*** 16/10/2024: Thêm tính năng lưu User/Pass.
*** 20/10/2024: Sửa lỗi hiển thị ngày tháng, sửa và thêm một số code phụ trợ.
*** 28/10/2024: Sửa lấy hóa đơn từ máy tính tiền.
*** 07/11/2024: Sửa code trích xuất dữ liệu, thêm cột so sánh.
*** 13/11/2024: Dùng code của bạn Hesanbi để tự động nhập Captcha. Thêm code lấy link tra cứu của VNPT và BKAV.
*** 05/02/2025: Thêm code tải file Zip và trích xuất dữ liệu hóa đơn từ file XML. Sửa một số lỗi.
 

File đính kèm

Lần chỉnh sửa cuối:
Sau khi mình test thấy có một số lỗi như sau (File V6):
  1. Phần link tra cứu hóa đơn, không click hiện trang tra cứu luôn (Cái này hơi bất tiện một xíu...), một số tổ chức giải pháp nhảy lộn xộn khi tra cứu sang trang không đúng trang cung cấp (hình bên dưới) cái này @ongke0711 để ý một xíu nha. (Cái phần ô chỏ chuột đó không phải vectc mà là Viettel)Loi link tra cuu.png
  2. Khi tải tất cả tệp zip về khi đưa lên trên Excel lại bất tiện vì một lần nữa phải nhấp phải chuột từng cái để kéo thả vào thư mục, (hình dưới đây mình chỉ giải nén ra chưa tách được file xml)Screenshot 2025-02-20 103739.png
  3. Sau khi mình nhập từng cái thì phần bên dưới không hiện các file chứng từ xml đã nhập lên Excel như thế nào nên không biết cái nào nhập r cái nào chưa nhập (Hình bên dưới), không hiện kết quả gì hết trơn.Screenshot 2025-02-20 104110.png
Mình có đề xuất thêm như sau:
  1. Mong Tác giả @ongke0711 khắc phục những lỗi mình vừa nêu trên.
  2. Đề xuất thêm: Nếu như tùy chọn xml/html đó mà không tích thì ở dưới các danh sách không cần hiện, nếu mà tích chọn cái đó thì phải có số lượng hóa đơn, đơn giá tổng, thành tiền tổng để có thể đối chiếu lại các hóa đơn còn sót trong kỳ.
  3. Phần chọn ngày tháng có thể show lịch cụ thể chứ có thể một số năm nhuận có 29 ngày sẽ bị thiếu hóa đơn, tất cả các ngày hoặc tùy chọn thêm tháng, quý, năm cũng được.
Mong rằng tác giả @ongke0711 có thể đọc phản hồi này, mình luôn ủng hộ dự án này phát triển nhiều hơn nữa trong tương lai.
Bài đã được tự động gộp:

OPTIONS trong HTTP là lệnh gửi yêu cầu thiết đặt tùy chọn tại server trước khi gửi yêu cầu tiếp theo, để server hiểu là yêu cầu tiếp theo gửi đến các tùy chọn là khớp với OPTIONS đó để server nhận đúng yêu cầu và sẽ trả về kết quả theo OPTIONS đó.
Nếu anh viết mã HTTP đồng bộ thì quá trình gửi OPTIONS này sẽ thêm độ trễ.
Viết mã HTTP Bất đồng bộ là lập trình VBA nâng cao, để tiến đến viết mã ứng dụng chuyên nghiệp mà người học lập trình nên hướng đến. Hãy xem một ví dụ là Chrome tải hình ảnh của Intagram của một cá nhân, với hàng trăm ảnh cùng lúc. Thì không thể tải đồng bộ, nó sẽ tạo ra độ trễ lớn cho người xem.


Hãy hiểu về svg trước bạn nhé, svg nó có các ký tự định nghĩa cú pháp M L Q Z ... bạn chỉ cần xóa hết các chỉ số định vị vị trí chiều rộng cao đi. Giữ lại các ký tự cú pháp. Bây giờ việc bạn cần làm là nhấn nút tạo mới captcha để chép lại các dãy mã SVG từ 0-9 A-Z xóa như trên để sau này so sánh với SVG mới. Hãy nghĩ xem bạn sẽ thấy mỗi ký tự có chỉ số định vị vị trí theo chiều ngang, so sánh 1 trong các chỉ số này của mỗi ký tự bạn sẽ có được thứ tự vị trí 6 ký tự.
Mỗi tệp svg đều có 2 3 đường kẻ che phía trước, các định nghĩa cú pháp SVG của nó rất đơn giản, nên rất dễ phát hiện chúng để loại trừ ra.

Sử dụng biểu thức chính quy bạn sẽ làm được các điều trên.

Tôi cũng đang viết ứng dụng này, bước captcha tôi đã xử lý xong, giai đoạn tiếp theo là xử lý khối dữ liệu và tải dữ liệu. Viết ứng dụng về HDDT là không đơn giản tí nào.

Bạn có thể xem qua hình ảnh ứng dụng tôi viết. Và cũng sẽ sớm chia sẻ.

View attachment 304547

@quocphuoc88
Dữ liệu API và XML là giống hệt nhau, từ dữ liệu API viết mã tạo tệp XML, thay vì tải zip. Bạn có 10k hóa đơn, nếu bạn tải về máy tính của bạn thì chỉ tốn kém. có 2 cách để giải quyết vấn đề tải zip để tiết kiệm cho việc tải:
1. Tải zip sau khi bạn lọc danh sách ít hóa đơn.
2. Từ Dữ liệu API tạo ra xml/html.
Nếu như Bác @HeSanbi đã tạo xong r thì chia sẻ lên cộng đồng để trải nghiệm trước tính năng thế nào để còn biết sửa lỗi chứ bác dựa vào @ongke0711 thấy hơi kì (Cái này chia sẻ thật lòng luôn, không khiển trách ai với ai cả). Còn không thì 2 bác hợp tác lại chia sẻ chung 1 file, đồng tác giả luôn cũng được
 
Lần chỉnh sửa cuối:
Upvote 0
Tôi lập trình tự lực bạn nhé, không dựa vào bất kỳ đoạn mã nào trong ứng dụng ở đây. Và tôi không có thời gian để đọc mã của ứng dụng này.
Tôi chỉ sợ các bạn học theo tôi không kịp, chứ đừng trông tôi học từ các bạn.

Tôi đang trong quá trình viết mã để chặn đánh cắp mã nguồn.


Tôi chỉ có ảnh để chứng minh, bao gồm các Module và Class Module

1740025185877.png1740025291232.png1740025226808.png
 
Lần chỉnh sửa cuối:
Upvote 0
Tôi lập trình tự lực bạn nhé, không dựa vào bất kỳ đoạn mã nào trong ứng dụng ở đây. Và tôi không có thời gian để đọc mã của ứng dụng này.
Tôi chỉ sợ các bạn học theo tôi không kịp, chứ đừng trong tôi học từ các bạn.

Tôi đang trong quá trình viết mã để chặn đánh cắp mã nguồn.
Nếu như bác sợ bị đánh cắp mã thì khoá mã VBA cũng được đặt mật khẩu cho đoạn mã để bảo vệ an toàn cũng được, cái mà người ta nhận được chỉ là danh sách, như tôi làm kế toán đây ko yêu cầu xem code, chỉ xem các kết quả trả về có phù hợp hay không thôi. Mong bác đọc được phản hồi này. Cảm ơn
 
Upvote 0
Mình nghĩ Tool Excel này đang được tác giả chia sẻ miễn phí. Nên có không vừa ý các bạn hay không phù hợp các bạn có thể bỏ qua và mua bản trả phí của các nhà cung cấp khác. Còn nếu vẫn muốn dùng và góp ý thêm thì các bạn nên nói nhờ tác giả coi vậy có hợp lý và có thời gian làm không. Chứ nhiều bạn dùng miễn phí công sức của người khác mà toàn nói kiểu mình là người thuê viết riêng ý!
 
Upvote 0
Web KT

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

Back
Top Bottom