tears_of_kaliar
Thành viên mới

- Tham gia
- 2/4/11
- Bài viết
- 2
- Được thích
- 0
Chào các bác.
Em có 1 số dữ liệu do phần mềm lưu thông tin dưới dạng file xml. nay em muốn tổng hợp lai thành 1 file excel
Cấu trúc file xml thì như bên dưới. Em bây giờ cần lấy dữ liệu ở 1 số dòng sau
<Name>NHÀ MÁY FORO MĂNG GAN</Name>
<CompanyType>4</CompanyType>
<BusinessArea>14</BusinessArea>
<CityNameLevel1>4 ~ Tỉnh Cao Bằng</CityNameLevel1>
<CityNameLevel2>48 ~ Huyện Hạ Lang</CityNameLevel2>
<CityNameLevel3>01561 ~ Xã Vinh Quý</CityNameLevel3>
Em đã tham khảo 1 số bài viết và kiếm được hướng dẫn tại :http://answers.microsoft.com/en-us/...33a592e?page=1&tab=question&status=AllReplies
. Theo hướng dẫn đầu tiên của TasosK
thì em có thể get được hết toàn bộ dữ liệu nhưng nó không được thuận tiện vì lặp lại phần tên cột dữ liệu và không lấy được luôn dữ liệu mong muốn. Đến phần code thứ 2 của bạn ý thì em lại không sử dụng được, chỉ lấy được dữ liệu 1 file đầu tiên
Còn đây là file xml của em
Em thì không có kiến thức về lập trình, up bài lên đây mong các bác giúp đỡ em ạ. Em cảm ơn
Em có 1 số dữ liệu do phần mềm lưu thông tin dưới dạng file xml. nay em muốn tổng hợp lai thành 1 file excel
Cấu trúc file xml thì như bên dưới. Em bây giờ cần lấy dữ liệu ở 1 số dòng sau
<Name>NHÀ MÁY FORO MĂNG GAN</Name>
<CompanyType>4</CompanyType>
<BusinessArea>14</BusinessArea>
<CityNameLevel1>4 ~ Tỉnh Cao Bằng</CityNameLevel1>
<CityNameLevel2>48 ~ Huyện Hạ Lang</CityNameLevel2>
<CityNameLevel3>01561 ~ Xã Vinh Quý</CityNameLevel3>
Em đã tham khảo 1 số bài viết và kiếm được hướng dẫn tại :http://answers.microsoft.com/en-us/...33a592e?page=1&tab=question&status=AllReplies
. Theo hướng dẫn đầu tiên của TasosK
Sub From_XML_To_XL()
On Error GoTo errh
Dim myWB As Workbook, WB As Workbook
Set myWB = ThisWorkbook
Dim myPath
myPath = "c:\folder1\folder2\xml folder\" '<<< change path
Dim myFile
myFile = Dir(myPath & "*.xml")
Dim t As Long
t = 1
Application.ScreenUpdating = False
Do While myFile <> ""
Set WB = Workbooks.OpenXML(Filename:=myPath & myFile)
WB.Sheets(1).UsedRange.Copy myWB.Sheets(1).Cells(t, "A")
WB.Close False
t = myWB.Sheets(1).UsedRange.Rows.Count + 2
myFile = Dir()
Loop
Application.ScreenUpdating = True
myWB.Save
Exit Sub
errh:
MsgBox "no files xml"
End Sub
thì em có thể get được hết toàn bộ dữ liệu nhưng nó không được thuận tiện vì lặp lại phần tên cột dữ liệu và không lấy được luôn dữ liệu mong muốn. Đến phần code thứ 2 của bạn ý thì em lại không sử dụng được, chỉ lấy được dữ liệu 1 file đầu tiên
Sub From_XML_To_XL_02()
On Error GoTo errh
Dim myWB As Workbook, WB As Workbook
Set myWB = ThisWorkbook
Dim myPath
myPath = "c:\folder1\folder2\xml folder\" '<<< change path
Dim myFile
myFile = Dir(myPath & "*.xml")
Dim t As Long, N As Long, r As Long, c As Long
t = 1
N = 0
Application.ScreenUpdating = False
Do While myFile <> ""
N = N + 1
Set WB = Workbooks.OpenXML(Filename:=myPath & myFile)
If N > 1 Then
r = WB.Sheets(1).Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
c = WB.Sheets(1).Cells.Find(What:="*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
WB.Sheets(1).Range(Cells(3, "A"), Cells(r, c)).Copy myWB.Sheets(1).Cells(t, "A")
Else
WB.Sheets(1).UsedRange.Copy myWB.Sheets(1).Cells(t, "A")
End If
WB.Close False
t = myWB.Sheets(1).Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
myFile = Dir()
Loop
Application.ScreenUpdating = True
myWB.Save
Exit Sub
errh:
MsgBox "no files xml"
End Sub
Còn đây là file xml của em
<?xml version="1.0" standalone="yes"?><Xml>
<Info>
<CompanyInfoId>4f4611be-e507-4318-9d2b-9cc9cf796e01</CompanyInfoId>
<EntryBy>Default</EntryBy>
<EntryDataId>2013</EntryDataId>
<EntryDate>12/29/2013</EntryDate>
<RecordDate>4/1/2014</RecordDate>
<Reference>4f4611be-e507-4318-9d2b-9cc9cf796e01</Reference>
<Code>00001</Code>
<ManageCode>04.048.00.00001</ManageCode>
<TaxCode>0101469451</TaxCode>
<Name>NHÀ MÁY FORO MĂNG GAN</Name>
<Tel>0266 580 418</Tel>
<Fax />
<Email />
<Website />
<Updated>2</Updated>
<LoginName />
<CityLevel1>31</CityLevel1>
<CityLevel1Code>4</CityLevel1Code>
<CityLevel2>397</CityLevel2>
<CityLevel2Code>48</CityLevel2Code>
<CityLevel3>5321</CityLevel3>
<CityLevel3Code>01561</CityLevel3Code>
<CityLevel3Type>2</CityLevel3Type>
<CityLevel4>0</CityLevel4>
<CityNameLevel1>4 ~ Tỉnh Cao Bằng</CityNameLevel1>
<CityNameLevel2>48 ~ Huyện Hạ Lang</CityNameLevel2>
<CityNameLevel3>01561 ~ Xã Vinh Quý</CityNameLevel3>
<CityNameLevel3Type>2 ~ Xã</CityNameLevel3Type>
<CityNameLevel4 />
<Address />
<CompanyType>4</CompanyType>
<BusinessArea>14</BusinessArea>
<KhuCN>0</KhuCN>
<KhuCNCode>0</KhuCNCode>
<KhuCNName>0</KhuCNName>
<TSLD_DN>19</TSLD_DN>
<TSLD_NT>0</TSLD_NT>
<TSLD_TT>15</TSLD_TT>
<TSLD_Nu>2</TSLD_Nu>
<TSLD_HDLD>10</TSLD_HDLD>
<TSLD_HDLD_Nu>2</TSLD_HDLD_Nu>
<TSLD_THPT>19</TSLD_THPT>
<CMKT1>11</CMKT1>
<CMKT2>0</CMKT2>
<CMKT3>0</CMKT3>
<CMKT4>0</CMKT4>
<CMKT5>6</CMKT5>
<CMKT6>1</CMKT6>
<CMKT7>1</CMKT7>
<GDDT1>2</GDDT1>
<GDDT2>2</GDDT2>
<GDDT3>4</GDDT3>
<GDDT4>0</GDDT4>
<GDDT5>0</GDDT5>
<GDDT6>11</GDDT6>
<NNC1>1</NNC1>
<NNC2>4</NNC2>
<NNC3>0</NNC3>
<NNC4>0</NNC4>
<NNC5>3</NNC5>
<NNC6>11</NNC6>
<TSLD_CanTuyen>0</TSLD_CanTuyen>
<TSLD_ThayThe>0</TSLD_ThayThe>
<IsNew>1</IsNew>
<CreateUser>608</CreateUser>
<CreateDate>9/11/2012</CreateDate>
<ModifiedUser>608</ModifiedUser>
<ModifiedDate>4/1/2014</ModifiedDate>
<PortalId>0</PortalId>
<ModuleId>0</ModuleId>
<CompanyStatus>1</CompanyStatus>
</Info>
</Xml>
Em thì không có kiến thức về lập trình, up bài lên đây mong các bác giúp đỡ em ạ. Em cảm ơn
Lần chỉnh sửa cuối: