Dùng VBA để chuyển báo cáo tài chính dạng xml sang excel (1 người xem)

Liên hệ QC

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

Tôi tuân thủ nội quy khi đăng bài

maskbacking

Thành viên mới
Tham gia
3/4/07
Bài viết
2
Được thích
0
Xin nhờ các bác gợi ý giúp ạ
Mình có các file Báo cáo tài chính xml muốn chuyển sang excel bằng vba. Bác nào từng làm cho mình xin gợi ý về các bước được ko ạ?
Nếu làm thủ công, mình sẽ mở file xml bằng itaxviewer, sau đó in thành file pdf, mở file pdf bằng word và copy sang excel.
Tuy nhiên, mình thấy các chỉ tiêu trên báo cáo tài chính đều có mã số nên có thể dựa vào đó để dò và chuyển sang excel.
Nhờ các bác tư vấn giúp ạ.
Mình cảm ơn
 
Lần chỉnh sửa cuối:
1. Bạn nên bỏ các chữ viết tắt như "ACE', "bctc" đi sẽ có nhiều "lão thành" ở đây hỗ trợ hơn
2. Bạn cho xem cấu trúc file xml thì mới có hướng giải quyết hiệu quả được, còn tù mù thì mất công lắm, viết cho đã đưa lên bạn lại thêm tí này tí nọ thì cả ngày chưa xong
 
Upvote 0
Ví dụ file xml có cấu trúc như thế này
Mã:
<Employees>
    <Employee>
        <ID>1</ID>
        <Name>Nguyen Van A</Name>
        <Department>IT</Department>
    </Employee>
    <Employee>
        <ID>2</ID>
        <Name>Tran Thi B</Name>
        <Department>HR</Department>
    </Employee>
</Employees>

Thì code VBA sẽ như thế này (dùng đối tượng DOMDocument để phân tích file XML)

Mã:
Sub ImportXMLtoExcel()
    Dim xmlDoc As Object
    Dim employees As Object
    Dim employee As Object
    Dim i As Long
    Dim filePath As String
    
    filePath = Application.GetOpenFilename("XML Files (*.xml), *.xml", , "Chon file XML")
    If filePath = "False" Then Exit Sub
    
    Set xmlDoc = CreateObject("MSXML2.DOMDocument")
    xmlDoc.async = False
    xmlDoc.Load filePath
    
    If xmlDoc.parseError.ErrorCode <> 0 Then
        MsgBox "Loi doc file XML: " & xmlDoc.parseError.reason, vbCritical
        Exit Sub
    End If
    
    ' Lay danh sách Employee
    Set employees = xmlDoc.getElementsByTagName("Employee")
    
    ' Ghi tiêu de
    With Sheet1  'Thay doi ten Sheet và Cell
        .Cells.ClearContents
        .Cells(1, 1).Value = "ID"
        .Cells(1, 2).Value = "Name"
        .Cells(1, 3).Value = "Department"
    End With
    
    ' Ghi du lieu
    i = 2
    For Each employee In employees
        Sheet1.Cells(i, 1).Value = employee.SelectSingleNode("ID").text
        Sheet1.Cells(i, 2).Value = employee.SelectSingleNode("Name").text
        Sheet1.Cells(i, 3).Value = employee.SelectSingleNode("Department").text
        i = i + 1
    Next employee
    
    MsgBox "Thành công"
End Sub

Bạn điều chỉnh lại cho phù hợp với cấu trúc file của bạn
 
Upvote 0
Xin nhờ các bác gợi ý giúp ạ
Mình có các file Báo cáo tài chính xml muốn chuyển sang excel bằng vba. Bác nào từng làm cho mình xin gợi ý về các bước được ko ạ?
Nếu làm thủ công, mình sẽ mở file xml bằng itaxviewer, sau đó in thành file pdf, mở file pdf bằng word và copy sang excel.
Tuy nhiên, mình thấy các chỉ tiêu trên báo cáo tài chính đều có mã số nên có thể dựa vào đó để dò và chuyển sang excel.
Nhờ các bác tư vấn giúp ạ.
Mình cảm ơn
Báo cáo tài chính mà đã có file xml thì bạn vào ứng dụng HTKK chọn "Nhập từ xml" rồi chọn "Kết xuất" ra file Excel thôi chứ cần gì code nữa.
 
Upvote 0
Web KT

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

Back
Top Bottom