以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]导入excel或者txt  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=83433)

--  作者:huhu
--  发布时间:2016/4/8 16:54:00
--  [求助]导入excel或者txt
导入excel或者txt。
怎么能做到无论选择excel或者txt都能自动判断,导入呢。就不用就2个按钮,分别导入excel和导入txt了。一个按钮就搞定。

Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog
dlg.Filter= "excel文件|*.xls" \'设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
    Dim ip As New Merger
    ip.SourcePath = dlg.FileName \'指定数据文件
    ip.SourceTableName = "订单执行统计表$" \'指定要导入的表    
    ip.DataTableName ="订单" \'导入后的表名    
    ip.Format = "Excel" \'指定导入格式
    ip.merge()
End If

--  作者:大红袍
--  发布时间:2016/4/8 17:12:00
--  
Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog
dlg.Filter= "文件|*.xls;*.txt" \'设置筛选器
If dlg.ShowDialog = DialogResult.OK Then
    Dim info As new fileinfo(dlg.FileName)
    msgbox(info.Extension)
    If info.Extension = ".txt" Then
        msgbox("文本代码")
    ElseIf info.Extension = ".xls" Then
        msgbox("excel代码")
    End If
End If

--  作者:eb_xinlang
--  发布时间:2016/4/8 17:42:00
--  
图片点击可在新窗口打开查看
--  作者:huhu
--  发布时间:2016/4/8 18:22:00
--  

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:sn.txt


.NET Framework 版本:2.0.50727.8670
Foxtable 版本:2015.12.22.1
错误所在事件:
详细错误信息:
\'C:\\Users\\基永\\Desktop\\SN.txt\'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。


Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog
dlg.Filter= "文件|*.xls;*.txt" \'设置筛选器
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:sn.txt

If dlg.ShowDialog = DialogResult.OK Then
    Dim info As new fileinfo(dlg.FileName)
    If info.Extension = ".txt" Then
        Dim mg As New Merger
        mg.SourcePath = dlg.filename \'指定数据文件所在目录
        msgbox(0)
        mg.Format = "Delimited" \'指定格式
        msgbox(1)
        mg.SourceTableName = "SN" \'指定要合并的文件,无需扩展名
        msgbox(2)
        mg.Header = True
        msgbox(3)
        mg.DataTableName = "扫描配货明细" \'指定接收数据的表
        msgbox(4)
        mg.Merge() \'开始合并-----提示报错,需要导入的SN.txt不是有效的路径
        msgbox(5)
    ElseIf info.Extension = ".xls" Then
        Dim mg As New Merger
        mg.SourcePath = dlg.filename
        mg.Format = "excel" \'指定格式
        mg.SourceTableName = "序列号$" \'指定要合并的表
        mg.DataTableName = "扫描配货明细" \'指定接收数据的表
        mg.Merge() \'开始合并
    End If
End If
For Each dr As DataRow In DataTables("扫描配货明细").DataRows
    If dr("SN") = "" Then
        dr.Delete
    End If
Next
DataTables("扫描配货明细").Save





--  作者:Hyphen
--  发布时间:2016/4/9 9:18:00
--  
 If info.Extension = ".txt" Then
        Dim mg As New Merger
        mg.SourcePath = Info.Path \'指定数据文件所在目录

--  作者:huhu
--  发布时间:2016/4/11 9:19:00
--  
TXT里面是这样。
096597223
096597224
前面第一位是有0的。怎么导入到ft后,第一位0没了。
变为了
96597223
96597224
这是怎么回事?
excel就没这个问题。

--  作者:大红袍
--  发布时间:2016/4/11 9:21:00
--  

 那你可以用代码合并。

 

http://www.foxtable.com/help/topics/2629.htm

 


--  作者:huhu
--  发布时间:2016/4/11 10:49:00
--  [求助]merge合并是不是不能后台统计啊。
datacolchange:
msgbox(11)----执行
Dim sum As Integer = DataTables("扫描配货明细").SQLCompute("Sum(数量)","状态 = \'生产结束扫描完成\'")
ssdsl.text = "实扫到数量:" & sum
msgbox(22)---执行

但执行了红色的代码,merge excel后。sum的值没有改变。


Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog
dlg.Filter= "文件|*.xls;*.txt" \'设置筛选器
If dlg.ShowDialog = DialogResult.OK Then
    Dim info As new fileinfo(dlg.FileName)
    If info.Extension = ".txt" Then
        Dim strs As String = FileSys.ReadAllText(dlg.FileName)
        strs = strs.Replace(vblf,"")
        Dim rs() As String = strs.Split(vbcr)
        For i As Integer = 0 To rs.Length - 1
            Dim dr As DataRow = DataTables("扫描配货明细").Addnew()
            dr("SN") = rs(i)
        Next
    ElseIf info.Extension = ".xls" Then
        DataTables("扫描配货明细").Addnew()
        Dim mg As New Merger
        mg.SourcePath = dlg.filename
        mg.Format = "excel" \'指定格式
        mg.SourceTableName = "序列号$" \'指定要合并的表
        mg.DataTableName = "扫描配货明细" \'指定接收数据的表
        mg.Merge() \'开始合并
    End If
End If
For Each dr As DataRow In DataTables("扫描配货明细").DataRows
    If dr("SN") = "" Then
        dr.Delete
    End If
Next
DataTables("扫描配货明细").Save

--  作者:大红袍
--  发布时间:2016/4/11 10:50:00
--  

 那行没有保存肯定不会SQLCompute

 

 你可以在datacolchanged事件写 e.DataRow.Save


--  作者:huhu
--  发布时间:2016/4/11 10:57:00
--  
保存过的。
另外导入txt。能正常统计。
导入excel。就不统计。