• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Định dạng kiểu dữ liệu khi xuất sang file Excel

Nơi trao đổi về VBA (Visual Basic for Application), lập trình cho ứng dụng Microsoft Office, AutoCAD...

Moderator: tungblt

ttanhtuyet
Posts: 2
Joined: Wed 05/01/2011 4:08 pm

Định dạng kiểu dữ liệu khi xuất sang file Excel

Postby ttanhtuyet » Thu 06/01/2011 2:02 pm

Khi xuất dữ liệu qua 1 file Excel, các trường như mã số: 002 bị đổi thành 2. Theo mình nghĩ khi đọc dữ liệu và ghi qua file Excel mình phải định dạng cột/ dòng là kiểu Text để dữ liệu không bị thay đổi, nhưng mình đã kiểm tra các thuộc tính của objWS (worksheets) rồi, không thấy và cũng không biết cách định dạng làm sao ? Đây là đoạn code xuất ra file Excel, giúp mình với.

  1. Public Sub createFiletoExcel(strsql As String)
  2. Dim rs As ADODB.Recordset
  3. Dim objXL As Excel.Application
  4. Dim objWS As Excel.Worksheet
  5. Dim fld As ADODB.field
  6. Dim intCol As Integer
  7. Dim intRow As Integer
  8. Dim str As String
  9. Set rs = New ADODB.Recordset
  10.  
  11. rs.Open strsql, gconn
  12.  
  13. Set objXL = New Excel.Application
  14. objXL.Workbooks.Add
  15.  
  16. Set objWS = objXL.ActiveSheet
  17.  
  18. ' Copy the data
  19. ' First the field names
  20. For intCol = 0 To rs.Fields.Count - 1
  21. Set fld = rs.Fields(intCol)
  22. objWS.Cells(1, intCol + 1) = IIf(fld.Name <> "", fld.Name, "")
  23.  
  24. Next intCol
  25. ' Now the actual data
  26. intRow = 2
  27. Do Until rs.EOF
  28. For intCol = 0 To rs.Fields.Count - 1
  29. objWS.Cells(intRow, intCol + 1) = _
  30. IIf(rs.Fields(intCol).value <> "", rs.Fields(intCol).value, "")
  31. Next intCol
  32. rs.MoveNext
  33. intRow = intRow + 1
  34. Loop
  35. objXL.Visible = True
  36. End Sub

--------
[mod=]* Code phải đưa vào thẻ code đúng quy định (kẻo bài bị xóa tiếp)[/mod]



User avatar
truongphu
VIP
VIP
Posts: 4766
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 520 times

Re: Định dạng kiểu dữ liệu khi xuất sang file Excel

Postby truongphu » Thu 06/01/2011 5:20 pm

Khi bạn tạo file xls (Workbooks.Add), duyệt qua các col
Nếu col chứa số dạng text (001), hãy format trước cho col đó là text, thế thôi



-----
Bổ sung: Bạn xem thử bài tôi mới viết:
Chuyển dữ liệu từ Recordset sang Excel
viewtopic.php?f=30&p=94320#p94320
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

ttanhtuyet
Posts: 2
Joined: Wed 05/01/2011 4:08 pm

Re: Định dạng kiểu dữ liệu khi xuất sang file Excel

Postby ttanhtuyet » Fri 07/01/2011 7:37 am

Chính là ở chổ đó nhưng mình không biết phải format như thế nào nên mới gửi đoạn code để các bạn bổ sung giúp.

User avatar
truongphu
VIP
VIP
Posts: 4766
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 520 times

Re: Định dạng kiểu dữ liệu khi xuất sang file Excel

Postby truongphu » Fri 07/01/2011 8:30 am

ttanhtuyet wrote:mình không biết phải format như thế nào


* ttanhtuyet đã đọc bài tôi giới thiệu trên chưa? "Chuyển dữ liệu từ Recordset sang Excel"
Khỏi Add từ record vào row mất công, lại phải format cell cho đúng dạng dữ liệu

* ttanhtuyet là truong thi anh tuyet hả? hóa ra là bà con ;)
muốn format range, chọn vùng, select, lệnh format text là:

Code: Select all

Selection.NumberFormat = "@"


ô! đơn giản nhỉ!
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

User avatar
truongphu
VIP
VIP
Posts: 4766
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 520 times

Re: Định dạng kiểu dữ liệu khi xuất sang file Excel

Postby truongphu » Fri 07/01/2011 2:18 pm

Đây là project mới viết, tặng ttanhtuyet
Export recordset to excel by for next.rar
download/file.php?id=11541
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh


Return to “Visual Basic for Application (VBA)”

Who is online

Users browsing this forum: No registered users and 2 guests