以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  格式转换问题!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=55619)

--  作者:heying325
--  发布时间:2014/8/20 10:36:00
--  格式转换问题!
我有个excel表,想导入到fox中去。其中日期列内数据格式很乱。。有的是 2012-05-23  而有的却写成  20120523   因为数据太多,一个个改花费精力太大。。请问有什么好方法?
--  作者:Bin
--  发布时间:2014/8/20 10:37:00
--  
自己编码合并吧
--  作者:heying325
--  发布时间:2014/8/20 10:45:00
--  
合并我知道啊,就是不知道怎么转换!
--  作者:有点甜
--  发布时间:2014/8/20 10:48:00
--  
以下是引用heying325在2014-8-20 10:45:00的发言:
合并我知道啊,就是不知道怎么转换!

 

得看你的数据是如何的不规则,自己总结规律,如果没有规律可言,就没有处理的方法可言。


--  作者:Bin
--  发布时间:2014/8/20 10:49:00
--  
Dim s As String ="20120523"
s = s.Insert(4,"-").Insert(7,"-")
MessageBox.show(s)

--  作者:Bin
--  发布时间:2014/8/20 10:49:00
--  
Dim s As String ="20120523"
If s.Contains("-")=False Then
    s = s.Insert(4,"-").Insert(7,"-")
End If
MessageBox.show(s)

--  作者:狐狸爸爸
--  发布时间:2014/8/20 10:49:00
--  

可以自己做个按钮,批量处理一下,假定你的格式是固定为:20050810,四位年,两位月,两位日。

 

Dim  Book As New XLS.Book("c:\\test\\订单.xls")
Dim  Sheet As XLS.Sheet = Book.Sheets(0)
Dim x As Integer = 7 \'假定日期是第8列
For  n  As  Integer =  1  To  Sheet.Rows.Count -1
    Dim  bh  As  String =  sheet(n,7).Text
    If isnumeric(bh) AndAlso bh.length = 8 Then
        sheet(n,7).Value = new Date(bh.SubString(0,4),bh.Substring(4,2),bh.Substring(6,2))
    End If
Next
book.Save("c:\\test\\订单.xls")

[此贴子已经被作者于2014-8-20 10:49:56编辑过]