Convert XML to Excel

Trạng thái
Không mở trả lời sau này.

tuhocvba

Administrator
Thành viên BQT
Tại sao output này lại có thông tin Buổi ở đây nhỉ?
Bạn cần đăng nhập để thấy hình ảnh

Thông tin này lấy từ đâu? @Ngô Minh Ngọc
 
Mình mong muốn admin và các thành viên tạo ra 1 code theo ý mình. admin có trả lời là khả thi, mong mọi người giúp đỡ
 
Không cần tên cột, mình tự ghi vào cũng được.
Cái vấn đề tên lớp xếp linh tinh như @NhanSu nói. Mình định xử lý bằng hàm tự tạo:
Mã:
rs.Open "SELECT Lop,hieuchinhso(Lop) FROM [" & sh1 & "$] GROUP BY Lop ORDER BY hieuchinhso(Lop) ASC", cn
Mã:
'Input: 11A6
'Output: 11
'Input: 10A5
'Output: 10
Function tachlayso1(ByVal s As String)
    Dim s2 As String, kq As String, i As Long, tmp As String
    s2 = Replace(s, " ", "", , , vbTextCompare)
    tachlayso1 = ""
    If s2 = "" Then Exit Function
    For i = 1 To Len(s2) Step 1
        tmp = Mid(s2, i, 1)
        If IsNumeric(tmp) Then
            kq = kq & tmp
        Else
            Exit For
        End If
    Next i
        tachlayso1 = kq
End Function

'Input: 10A6
'Output: 1006
Function hieuchinhso(ByVal s As String)
    Dim s1 As String
    Dim s2  As String
    s1 = tachlayso1(s)
    s2 = tachlayso(s)
    If Len(s1) = 1 Then s1 = "0" & s1
    If Len(s2) = 1 Then s2 = "0" & s2
    hieuchinhso = s1 & s2
End Function
Mà nó đang báo là hàm hieuchinhso chưa được định nghĩa =,=
bạn sử lý bằng hàm gì, mình đã từng sử lý bằng hàm rồi, mong bạn sử lý hàng tự tạo mà ra cái file excel kia luôn, khỏi đi đường vòng. cảm ơn các bạn
 

tuhocvba

Administrator
Thành viên BQT
Hiện tại chúng tôi đã xong demo.
File output xuất ra sẽ nằm chung thư mục với file csv input.
Nội dung file output này có 4 sheet như sau:
Bạn cần đăng nhập để thấy hình ảnh

Sheet input phản ánh trung thực nội dung lấy được từ file CSV. Tên cột dữ liệu trên sheet input được điều chỉnh lại để chạy các lệnh ADO được thuận tiện.
Bạn cần đăng nhập để thấy hình ảnh

Như trên ảnh đã thể hiện, ở phần này có xây dựng thêm cột dữ liệu phụ, để sau này xuất dữ liệu ra các sheet output được đẹp mắt.
Sheet phân công giáo viên:
Bạn cần đăng nhập để thấy hình ảnh

Sheet thời khóa biểu học sinh:
Bạn cần đăng nhập để thấy hình ảnh

Sheet này không rõ thông tin Buổi lấy ở đâu.
Lấy từ mẫu up trên vnedu bạn ơi
Theo nhận thức của chúng tôi, input lấy ở trong file csv, và trong file csv không thể hiện thông tin này. Tạm thời bỏ trống cột dữ liệu Buổi.
Sheet phân công theo lớp:
Bạn cần đăng nhập để thấy hình ảnh


Dưới đây, tôi gửi chủ topic file input mà chúng tôi nhận được, và file output mà Tool demo xuất ra. Nếu bạn không có thắc mắc hay điều chỉnh hoặc chỉ ra được sai sót nào từ kết quả tool chạy, thì chúng ta tiến hành chuyển giao số tiền còn lại, chúng tôi chuyển giao tool demo để bạn chạy thử.
 
khi tôi đưa file input vào nó ko hoạt động, có bạn nào kết nối utra giúp tôi ko
45 178 606
3327
Bạn cần đăng nhập để thấy hình ảnh

sau đó
Bạn cần đăng nhập để thấy hình ảnh
 

tuhocvba

Administrator
Thành viên BQT
Đây là file xuất ra chứ có phải tool đâu mà thử.
Video tool demo:
 
cảm ơn các bạn, tkb gv đúng mẫu rồi
tkb hs ko đúng mẫu
Bạn cần đăng nhập để thấy hình ảnh

tkb toàn trường ko đúng mẫu
Bạn cần đăng nhập để thấy hình ảnh
 
tkb hs ko đúng mẫu
Bạn cần đăng nhập để thấy hình ảnh

tkb toàn trường ko đúng mẫu đúng mẫu chỗ này
Bạn cần đăng nhập để thấy hình ảnh
 

Euler

Administrator
Thành viên BQT
Theo tôi bạn nên khoanh đỏ vào vị trí chưa đúng.
Nói là chưa đúng thì là chưa đúng ở đâu, đưa ra cái ảnh vậy ai hiểu nổi.
Ví dụ:
Với output này:
Bạn cần đăng nhập để thấy hình ảnh

Đâu là vị trí chưa đúng. Nếu ở vị trí 1, thì file CSV không có thông tin Buổi ( S ). Bạn cần chỉ ra lấy thông tin đó như thế nào, hay là bỏ qua cũng được.
Vị trí số 2 là tiết 6, file CSV không có tiết 6. Có phải bạn muốn có dòng trống giữa các dòng?

Về phần tiết, nếu không có lý do đặc biệt thì nên để tường minh Tiết 1, Tiết 2, vì như thế sẽ thuận lợi cho người code sử dụng lệnh ADO. Nếu bạn vẫn muốn thể hiện bằng các số 1,2,3,... thì vẫn có thể làm được, chương trình sẽ chạy thêm xử lý, mất thêm chút thời gian, bạn hãy cân nhắc.
Bạn cần đăng nhập để thấy hình ảnh
 
Theo tôi bạn nên khoanh đỏ vào vị trí chưa đúng.
Nói là chưa đúng thì là chưa đúng ở đâu, đưa ra cái ảnh vậy ai hiểu nổi.
Ví dụ:
Với output này:
Bạn cần đăng nhập để thấy hình ảnh

Đâu là vị trí chưa đúng. Nếu ở vị trí 1, thì file CSV không có thông tin Buổi ( S ). Bạn cần chỉ ra lấy thông tin đó như thế nào, hay là bỏ qua cũng được.
Vị trí số 2 là tiết 6, file CSV không có tiết 6. Có phải bạn muốn có dòng trống giữa các dòng?

Về phần tiết, nếu không có lý do đặc biệt thì nên để tường minh Tiết 1, Tiết 2, vì như thế sẽ thuận lợi cho người code sử dụng lệnh ADO. Nếu bạn vẫn muốn thể hiện bằng các số 1,2,3,... thì vẫn có thể làm được, chương trình sẽ chạy thêm xử lý, mất thêm chút thời gian, bạn hãy cân nhắc.
Bạn cần đăng nhập để thấy hình ảnh
các bạn làm giúp tôi tkb hs chỉnh sửa theo số 1 và 2 và tkb toàn trường chỉnh đúng như trên, cho gọn. cảm ơn các bạn
 

Euler

Administrator
Thành viên BQT
OK. Bạn chưa trả lời thông tin S ở trên lấy ở đâu trong file csv, nó có ý nghĩa gì.
Cho Tool ghi mặc định vào đây là S bất kể input csv như thế nào liệu có đúng?
 
OK. Bạn chưa trả lời thông tin S ở trên lấy ở đâu trong file csv, nó có ý nghĩa gì.
Cho Tool ghi mặc định vào đây là S bất kể input csv như thế nào liệu có đúng?
S có nghĩa là sáng ạ và nhờ admin và mọi người hiểu luôn nếu chỗ đó là C nghĩa là chiều. S và C đều ko có trong CSV
 

giaiphapvba

Administrator
Thành viên BQT
các bạn làm giúp tôi tkb hs chỉnh sửa theo số 1 và 2 và tkb toàn trường chỉnh đúng như trên, cho gọn. cảm ơn các bạn
Bạn nên cân nhắc xóa luôn các chữ Thứ cho gọn. Suy nghĩ kỹ rồi sửa code một lần cho tiện, kẻo mai lại nghĩ ra rồi sửa thì mất công.

Bạn cần đăng nhập để thấy hình ảnh

Thông tin này nếu bạn không trả lời đựoc là lấy ở đâu để ghi vào, hoặc logic là gì để code thì chúng tôi sẽ cho chương trình ghi mặc định vào cột này chữ S.
Bạn cần đăng nhập để thấy hình ảnh

Theo tôi hình dung, trường học có các tiết 1, tiết 2, tiết 3,.... tiết 10.
Nếu tiết 1,2,3,4,5 thì là S (sáng), nếu tiết 6,7,8,9,10 thì là C (chiều). Nếu đúng như vậy thì bạn nên nói rõ điều kiện này ra. Chứ từ mù ai biết đâu mà code.
Các ý kiến ở trên nếu bạn ok thì chúng tôi tiến hành code.
 

tuhocvba

Administrator
Thành viên BQT
Tôi nói bạn đi đi. Thì bạn có biết đi đâu không?
Nói đi đi thì phải có thông tin là đi đâu.
Nói là ghi là S, tức là mặc định cột thông tin này luôn luôn là S?
Hay cứ dòng chẵn ghi là S, dòng lẻ ghi là C?
Nó phải có logic gì chứ. Bảo ghi thì điều kiện ghi là gì? Đâu là logic.
 

vbano1

SMod
Thành viên BQT
Nếu tiết 1,2,3,4,5 thì là S (sáng), nếu tiết 6,7,8,9,10 thì là C (chiều). Nếu đúng như vậy thì bạn nên nói rõ điều kiện này ra. Chứ từ mù ai biết đâu mà code.
Nếu đúng như vậy thì giải thích thế nào về file của chủ topic?
Bạn cần đăng nhập để thấy hình ảnh

Tiết 6 vẫn là sáng?
S có nghĩa là sáng ạ và nhờ admin và mọi người hiểu luôn nếu chỗ đó là C nghĩa là chiều. S và C đều ko có trong CSV
Tool dựa vào cái gì để ghi là S hoặc C vậy bạn?
 
Bạn nên cân nhắc xóa luôn các chữ Thứ cho gọn. Suy nghĩ kỹ rồi sửa code một lần cho tiện, kẻo mai lại nghĩ ra rồi sửa thì mất công.

Bạn cần đăng nhập để thấy hình ảnh

Thông tin này nếu bạn không trả lời đựoc là lấy ở đâu để ghi vào, hoặc logic là gì để code thì chúng tôi sẽ cho chương trình ghi mặc định vào cột này chữ S.
Bạn cần đăng nhập để thấy hình ảnh

Theo tôi hình dung, trường học có các tiết 1, tiết 2, tiết 3,.... tiết 10.
Nếu tiết 1,2,3,4,5 thì là S (sáng), nếu tiết 6,7,8,9,10 thì là C (chiều). Nếu đúng như vậy thì bạn nên nói rõ điều kiện này ra. Chứ từ mù ai biết đâu mà code.
Các ý kiến ở trên nếu bạn ok thì chúng tôi tiến hành code.
Vâng bỏ chứ thứ đi cho gọn. nhờ anh chị chỉnh cho ra 2 kiểu tkb sáng (chữ S) và chiều (chữ C) như trên và thời khoá biểu 2 ca như hình dưới
Bạn cần đăng nhập để thấy hình ảnh
 

tuhocvba

Administrator
Thành viên BQT
Chịu, không hiểu logic cho ra hai ca như bạn nói. Nhiệm vụ này không làm được. Bạn hãy tự điền tay chữ S hoặc C theo ý thích của bạn. Tool không có logic để điền S hay C vào đó.
 

Euler

Administrator
Thành viên BQT
Code phải có logic. Không hiểu tại sao lai ghi được đó là S hay C, chi bằng bạn hãy chấp nhận output này và tự điền tay chữ S vào. Copy và paste roạt một cái là được toàn cột chữ S. Chứ bảo code ghi S hoặc C vào mà không cho logic, khi nào điền S, khi nào điền C thì bạn đi khắp cái đất nước này không ai làm được, hoặc chỉ có làm điêu, làm láo, làm bừa.
Bỏ tiền ra thuê code, chi bằng bỏ tiền ra học một khóa code, cho đầu óc có thêm tư duy lập trình, khi đi nhờ vả code sẽ hiểu người code cần gì, và đưa thông tin cho đúng, vậy cũng đã là tốt rồi.
 
Trạng thái
Không mở trả lời sau này.
Top