以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 导入数据问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=190856) |
-- 作者:15666282205 -- 发布时间:2024/3/8 8:41:00 -- 导入数据问题 老师,狐表里的“生产计划表”,设计了新增按钮,序号自动增加,只增加一行。现在想从Excel导入,新增行数不固定,还得实现序号自动增加,我看了帮助,写了下面的代码,麻烦您给完善一下。 这是新增一行的代码: DataTables("生产计划表").AddNew() Tables("生产计划表").AutoSizeCols() 下面是导入按钮的代码: Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog dlg.Filter= "xls文件|*.xlsx" \'设置筛选器 If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 Dim ip As New Importer ip.SourcePath = dlg.FileName \'指定数据文件 ip.SourceTableName = "生产计划表" \'指定要导入的表 ip.NewTableName ="生产计划" \'导入后的表名 ip.Format = "Excel" \'指定导入格式 ip.Import() End If 另外,想实现选择文件的时候xls和xlsx都出现在选择的窗口里。 |
-- 作者:有点蓝 -- 发布时间:2024/3/8 9:10:00 -- 是要导入一个新表?还是要把execl里的数据合并到现有的表里? |
-- 作者:15666282205 -- 发布时间:2024/3/8 9:13:00 -- 在现有的表增加新的行,也就是把execl里的数据合并到现有的表里 |
-- 作者:有点蓝 -- 发布时间:2024/3/8 9:20:00 -- 合并要使用Merger :http://www.foxtable.com/webhelp/topics/0685.htm Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog dlg.Filter= "xls文件|*.xlsx;*.xls" \'设置筛选器 If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 dim xh as integer = DataTables("生产计划表").compute("max(序号)") dim id as integer = DataTables("生产计划表").compute("max(_identify)") Dim ip As New Merger ip.SourcePath = dlg.FileName \'指定数据文件 ip.SourceTableName = "生产计划表" \'execl文件里的sheet名称 ip.NewTableName ="生产计划表" \'导入后的表名 if dlg.FileName.endswith(".xls") ip.Format = "Excel" \'指定导入格式 else ip.Format = "Excel2007" \'指定导入格式 end if ip.Merge() for each dr as datarow in DataTables("生产计划表").select("_identify>" & id,"_identify") xh = xh + 1 dr("序号") = xh next End If |
-- 作者:15666282205 -- 发布时间:2024/3/8 9:41:00 -- 老师,提示以下错误: 编译错误:newtablename is not a member of "merger" 错误代码:ip.NewTableName ="生产计划表" \'导入后的表名
|
-- 作者:有点蓝 -- 发布时间:2024/3/8 10:00:00 -- Merger 的用法错误,根据帮助自己改一下 |
-- 作者:15666282205 -- 发布时间:2024/3/8 15:06:00 -- 老师,现在能导入,出现一个问题:序号自动增加,是在当前显示序号的基础上增加,而不是根据数据库后台的最高序号上增加,麻烦您指导一下 |
-- 作者:有点蓝 -- 发布时间:2024/3/8 15:17:00 -- dim xh as integer = DataTables("生产计划表").sqlcompute("max(序号)") |