以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关于数据导入导出  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=187837)

--  作者:ntqhj
--  发布时间:2023/8/16 9:19:00
--  [求助]关于数据导入导出

如何将foxtable的字段的内容导出到税务局开票系统特定模版的对应字段

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:货物运输服务导入特定信息模版.xls


--  作者:有点蓝
--  发布时间:2023/8/16 9:30:00
--  
直接设计模板即可:http://www.foxtable.com/webhelp/topics/2877.htm

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:货物运输服务导入特定信息模版.xls



--  作者:ntqhj
--  发布时间:2023/8/16 12:20:00
--  
窗口,绑定主表及子表(都是作为副本表),主表同一合同号下有多条记录,根据合同号筛选后,子表也会根据主表合同号的筛选结果显示对应数据,想加个按钮,只要点下按钮,该子表下的数据就会自动汇总到税务局开piao系统特定模版里,这个代码应该如何写?
--  作者:ntqhj
--  发布时间:2023/8/16 12:55:00
--  
这个从帮助找到,似乎已解决
--  作者:ntqhj
--  发布时间:2023/12/7 11:43:00
--  
税务局导入文件模板又变了,导出到Excel要求的模板
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:求助按要求导出到模板.zip

导出的值从第四行开始写入,列标题第一行、第二行、第三行的列名相同也可满足税务局导入文件要求,如何实现列标题第一行、第二行、第三行填写相同的列名?

--  作者:有点蓝
--  发布时间:2023/12/7 11:47:00
--  
For c As Integer = 0 To nms.length - 1 
    Sheet(0, c).Value = caps(c) \'指定列标题
    Sheet(1, c).Value = caps(c) \'指定列标题
    Sheet(2, c).Value = caps(c) \'指定列标题
    Sheet.Cols(c).Width = szs(c) \'指定列宽
    
Next
For r As Integer = 0 To dt.Rows.Count - 1 \'填入数据
    For c As Integer = 0 To nms.length - 1
        Sheet(r + 3, c).Value = dt.rows(r)(nms(c))
    Next
Next

--  作者:ntqhj
--  发布时间:2024/7/19 10:53:00
--  
2种导入代码,合并使用,首先选择需要导入的文件,然后导入对应字段的内容,老师帮解决下呢:
自己选择文件的导入代码
Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog
dlg.Filter = "Excell文件 .xlsx|*.xlsx|Excell文件 .xls|*.xls" \'设置筛选器

If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
    Dim mg As New Merger
    mg.SourcePath = dlg.FileName
    mg.Format = "excel" \'指定格式
    
    
    \'mg.Filter = "[交易时间] > #5/31/1999#" \'指定合并条件
    \'mg.Filter = "[记账时间] > #5/31/1999#" \'指定合并条件
    \'mg.Filter = "[清分时间] > #5/31/1999#" \'指定合并条件
    
    mg.Merge() \'开始合并
    
End If

导入指定字段内容的代码
 Dim Book As New XLS.Book("D:\\360安全浏览器下载\\管理系统下载的数据\\管理系统数据下载为导出\\中交中石油电子加油卡.xlsx")
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    
    For i As Integer = 0 To Sheet.Rows.Count - 1
        If sheet(0, i).Text = "中石油电子卡加油列表" Then
            messagebox.show("文件修复未完成,不能继续!请再次点击 修复待导入数据 按钮!", "提示")
            Return
        End If
    Next
    
    Tables("中交中石油电子加油卡").StopRedraw()
    \'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
    Dim nms() As String = {"电子加油卡", "面值", "单价优惠", "实付金额", "实付返利金", "分配状态", "首次分配用户手机号", "首次分配用户车牌号", "首次分配用户姓名", "当前持有用户手机号", "当前持有用户车牌号", "当前持有用户姓名", "首次分配时间", "卡券状态", "加油站点", "加油时间", "支付方式", "采购时间", "订单号", "备注"}
    \'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
    For n As Integer = 1 To Sheet.Rows.Count - 1
        Dim r As Row = Tables("中交中石油电子加油卡").AddNew()
        For m As Integer = 0 To nms.Length - 1
            r(nms(m)) = Sheet(n, m).Value
        Next
    Next
    Tables("中交中石油电子加油卡").ResumeRedraw()
[此贴子已经被作者于2024/7/19 10:56:42编辑过]

--  作者:有点蓝
--  发布时间:2024/7/19 11:07:00
--  
Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog
dlg.Filter = "Excell文件.xlsx|*.xlsx" \'设置筛选器

If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
    Dim mg As New Merger
    mg.SourcePath = dlg.FileName
    mg.Format = "excel2007" \'指定格式
mg.SourceTableName = "execl文件sheet的名称$" \'指定要合并的表
mg
.DataTableName = "中交中石油电子加油卡" \'指定接收数据的表
mg.Fields = "电子加油卡, 面值, 单价优惠, ....."
    mg.Merge() \'开始合并
    
End If


--  作者:ntqhj
--  发布时间:2024/7/19 15:21:00
--  
执行后,foxtable表里多了一个空行,感觉是标题行,直接从Excel数据行开始导入应该如何修改呢?
[此贴子已经被作者于2024/7/19 15:24:24编辑过]

--  作者:有点蓝
--  发布时间:2024/7/19 15:55:00
--  
默认就是只导入数据行。第一行标题不可能作为空行导入的。

应该是execl默认就有空行