以文本方式查看主题 - 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=132803) |
-- 作者:edisontsui -- 发布时间:2019/3/30 8:21:00 -- 如何将excel表格的数据自动导入数据表 我有一个excel表格(名称为“领料表”),里面有数据列“物料代号”和“领料数量”;再有一个数据表“批号表”,里面有数据列“产品代号”和“出库数量”。我在“菜单设计”那里建立了一个按钮,我希望按一下这个按钮,就可以将excel 表格“领料表”与数据表“批号表”进行比较,凡是“物料代号”=“产品代号”的,就将“领料数量”填入“出库数量”(代替掉旧的“出库数量”)。如果数据表“批号表”里面不存在某个“物料代号”,就要增加一行,将“物料代号”和“领料数量”输入到数据表的“产品代号”和“出库数量”。请教这个代码如何写。谢谢。 |
-- 作者:有点蓝 -- 发布时间:2019/3/30 9:04:00 -- 参考:http://www.foxtable.com/webhelp/scr/2334.htm |
-- 作者:edisontsui -- 发布时间:2019/4/4 16:30:00 -- If User.Group = "营销" Or User.name = "开发者" If CurrentTable.name.contains("直身开料单") Dim Book As New XLS.Book("c:\\开料任务单.xls") Dim Sheet As XLS.Sheet = Book.Sheets(1) Tables("直身开料单").StopRedraw() Dim nms() As String = {"票号","订单号","制造产品号","材料","物料号","开料参数","大小弯","数量","开料mm","开料inch","开料数量"} For n As Integer = 1 To Sheet.Rows.Count -1 Dim r As Row = Tables("直身开料单").AddNew() r("生产票号") = nms("票号") r("订单号") = nms("订单号") r("制造产品号") = nms("制造产品号") r("原材料") = nms("材料") r("型号") = nms("物料号") r("开料参数") = nms("开料参数") r("标识") = nms("大小弯") r("套数") = nms("数量") r("毫米") = nms("开料mm") r("长度") = nms("开料inch") r("数量") = nms("开料数量") Next Tables("直身开料单").ResumeRedraw() End If End If 因为数据表"直身开料单"的数列标题与excel表格"开料任务单"的数据列标题是不同的,所以我需要用到类似 r("生产票号") = nms("票号") 这样的代码,请帮我看看上面的代码是否有问题。要怎样修改?谢谢。
|
-- 作者:有点甜 -- 发布时间:2019/4/4 16:38:00 -- 代码改成这样
If User.Group = "营销" Or User.name = "开发者" |
-- 作者:edisontsui -- 发布时间:2019/4/4 17:00:00 -- 按照你的方法修改了代码,但还是执行不了,没有任何反映,没有任何警告。 |
-- 作者:有点甜 -- 发布时间:2019/4/4 17:50:00 -- 那试试改成这样测试
|
-- 作者:edisontsui -- 发布时间:2019/4/7 14:06:00 -- 上述代码可以了。 还有一个问题,excel表格里面的一串字符串,如果其第一个字符是空格的话,那么我仅希望去掉第一个空格(后面的空格要保留下来)。代码该如何写?谢谢。
|
-- 作者:有点甜 -- 发布时间:2019/4/7 14:49:00 -- 这个意思?参考
http://www.foxtable.com/webhelp/scr/0233.htm
http://www.foxtable.com/webhelp/scr/0240.htm
|
-- 作者:edisontsui -- 发布时间:2019/4/8 10:06:00 -- 去掉第一个空格的问题解决了。谢谢。 还有一个问题,我的excel表格output.xls是保存在客户的电脑上的,我们远程登录了客户的电脑,所以我需要将代码修改成如下: Dim Book As New XLS.Book("osdisk(c:)\\users\\sesa99355\\desktop\\output.xls") Dim Sheet As XLS.Sheet = Book.Sheets(0) Tables("直身开料单").StopRedraw() For n As Integer = 1 To Sheet.Rows.Count -1 msgbox(sheet(n, 0).text) Dim r As Row = Tables("直身开料单").AddNew() r("生产票号") = sheet(n, 0).text r("订单号") = sheet(n, 1).text r("制造产品号") = sheet(n, 2).text Next Tables("直身开料单").ResumeRedraw() 这样的修改有效吗?再者,这个excel表格的sheet名字是output,还需要修改哪里的代码吗?请参考下图。
|
-- 作者:有点甜 -- 发布时间:2019/4/8 12:10:00 -- 无法远程打开excel文件的。只能在本地电脑打开foxtable项目,然后再引用本地的excel文件。 |