以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何将excel文件导入已有数据表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=19653)

--  作者:rjh4078
--  发布时间:2012/5/17 9:03:00
--  如何将excel文件导入已有数据表
数据表已经建好了 现在要导入一些档案  我看帮助里只有导入新建表的介绍 如何将excel导入已有数据表呢?
--  作者:狐狸爸爸
--  发布时间:2012/5/17 9:06:00
--  

看看:

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=19617&replyID=125414&skin=1

 

实际上,本月即将发布的新版本连其中的图片都可以提取出来保存为文件,写入foxtable中。


--  作者:rjh4078
--  发布时间:2012/5/17 9:15:00
--  

代码看懂了一点 不过有个问题 这个sheet(4,3).text 是什么意思?


--  作者:狐狸爸爸
--  发布时间:2012/5/17 9:18:00
--  

参考:

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

 

帮助可以说处处是宝的。


--  作者:rjh4078
--  发布时间:2012/5/17 9:41:00
--  

还是没弄懂啊

 

我现在要导入附件中的表到产品资料中去 怎么写代码呢

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新建 microsoft office excel 工作表 - 副本.xlsx


--  作者:狐狸爸爸
--  发布时间:2012/5/17 9:45:00
--  

还有:

 

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

 


--  作者:lpxjw_zyl
--  发布时间:2012/5/17 10:39:00
--  
DataTables("Testlist").DataRows.Clear()
Dim dlg As New OpenFileDialog
dlg.MultiSelect = True
dlg.Filter= "Excel 工作薄(*.xls)|*.xls|Excel 工作薄(*.xlsx)|*.xlsx" \'设置筛选器
If dlg.ShowDialog = DialogResult.OK Then
    For Each fl As String In dlg.FileNames
        Dim Book As New XLS.Book(fl)
        Dim Sheet As XLS.Sheet = Book.Sheets(0)
        e.Form.Controls("Label1").text = FileSys.GetName(fl)
        Application.DoEvents()
        For i As Integer = 3 To Sheet.Rows.count - 1
            Dim dr1 As Row = Tables("Testlist").AddNew()
            For ii As Integer = 0 To Sheet.cols.count - 1
                dr1(Sheet(0,ii).value) = sheet(i,ii).Value
            Next
        Next
    Next
    e.Form.Controls("Label1").Text = "已经完成."
    MessageBox.Show("数据汇总完毕,请检查数据!", "汇总提示", MessageBoxButtons.OK, MessageBoxIcon.Question)
   
    Dim dlg1 As New SaveFileDialog \'定义一个新的SaveFileDialog
    dlg1.Filter= "Excel文件|*.xls" \'设置筛选器
    If dlg1.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
        Dim flg As New SaveExcelFlags
        flg.CellStyle = True
        flg.RowNumber =True
        CurrentTable.SaveExcel(dlg1.FileName,"Testlist",flg)
    End If
End If

--  作者:lpxjw_zyl
--  发布时间:2012/5/17 10:40:00
--  
Dim dlg As New OpenFileDialog
dlg.MultiSelect = True
dlg.Filter= "Excel 工作薄(*.xls)|*.xls|Excel 工作薄(*.xlsx)|*.xlsx" \'设置筛选器
If dlg.ShowDialog = DialogResult.OK Then
    For Each fl As String In dlg.FileNames
        Dim Book As New XLS.Book(fl)
        Dim Sheet As XLS.Sheet = Book.Sheets(0)
        Dim Names As New List(Of String)
        For ls As Integer = 0 To Sheet.Cols.count -1 \'把目标表中的列名变成集合
            Names.Add(Sheet(0,ls).value)
        Next
        If Names.Contains("统编学籍号")= False Then
            MessageBox.Show(FileSys.GetName(fl) & "表:" & vbcrlf & "不含""统编学号""字段列", "提示", MessageBoxButtons.OK, MessageBoxIcon.Question)
            Return
        Else
            e.Form.Controls("Label1").text = FileSys.GetName(fl)
            Application.DoEvents()
            For i As Integer = 1 To Sheet.Rows.count - 1
                Dim dr As DataRow = DataTables("Testlist").Find("[统编学籍号] = \'" & Sheet(i,3).Value & "\'")
                If dr IsNot Nothing Then \'如果当前表找到此列
                    For ii As Integer = 0 To Sheet.cols.count - 1
                        dr(Sheet(0,ii).value) = sheet(i,ii).Value
                    Next
                Else
                    Dim dr1 As Row = Tables("Testlist").AddNew() \'无此列就增加行并复制数据
                    For ii As Integer = 0 To Sheet.cols.count - 1
                        dr1(Sheet(0,ii).value) = sheet(i,ii).Value
                    Next
                End If
            Next
        End If
    Next
    e.Form.Controls("Label1").Text = "已经完成."
    MessageBox.Show("数据汇总完毕,请检查数据!", "汇总提示", MessageBoxButtons.OK, MessageBoxIcon.Question)
   
    Dim dlg1 As New SaveFileDialog \'定义一个新的SaveFileDialog
    dlg1.Filter= "Excel文件|*.xls" \'设置筛选器
    If dlg1.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
        Dim flg As New SaveExcelFlags
        flg.CellStyle = True
        flg.RowNumber =True
        CurrentTable.SaveExcel(dlg1.FileName,"Testlist",flg)
    End If
End If

--  作者:rjh4078
--  发布时间:2012/5/18 10:36:00
--  

感谢lpxjw_zyl 问题已搞定


--  作者:13636600695
--  发布时间:2012/5/20 8:10:00
--  

Dim ip As New Importer
ip.SourcePath = "E:\\资料\\库存.xls" \'指定数据文件
ip.SourceTableName = "半成品" \'指定要导入的表
ip.NewTableName ="S009" \'导入后的表名
ip.Format = "Excel" \'指定导入格式
ip.Import()
Dim f As  New Filler
f.SourceTable = DataTables("S009") \'指定数据来源
f.SourceCols = "编码,品名,类别,规格,型号,材质,单位" \'指定数据来源列
f.DataTable = DataTables("S001") \'指定数据接收表
f.DataCols = "第一列,第二列,第三列,第四列,第五列,第六列,第七列" \'指定数据接收列
f.Fill() \'填充数据
f.SourceTable = DataTables("S009") \'指定数据来源
f.SourceCols = "编码,品名,类别,规格,型号,材质,单位,数量,库位" \'指定数据来源列
f.DataTable = DataTables("S002") \'指定数据接收表
f.DataCols = "第一列,第二列,第三列,第四列,第五列,第六列,第七列,第八列,第九列" \'指定数据接收列
f.Fill() \'填充数据
Dim Builder As New ADOXBuilder
Builder.Open()
With Builder
    .DeleteTable("S009")
End With
Builder.Close()

 

功能好像差不多,但代码简单了不少,问题是不能更新原有数据