以文本方式查看主题 - 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=118710) |
-- 作者:vincent92 -- 发布时间:2018/5/9 11:32:00 -- 关于提取excel文件的问题 For Each file As String In filesys .GetFiles("E:\\资金日报") If file.EndsWith(".xls") OrElse file.EndsWith(".xlsx") Then Dim Book As New XLS.Book(file) Dim Sheet As XLS.Sheet = Book.Sheets(0) Dim s As String s=filesys.GetName(file) Dim i As Integer For i = 1 To 31 Dim dr As DataRow = DataTables("资金日报").AddNew dr("日期") = i dr("分公司") = s dr("收入_日常收入_店铺") = sheet(8,i).Text dr("收入_日常费用_店铺开支") = sheet(18,i).Text Next End If Next 这里做了一个提取excel数据的按钮,但是我有三个问题: 1.我用getname得到的文件名s是包含扩展名的,如何能得到不包含扩展名的文件名或者得到文件名的前缀 2.我想直接得到一个“收入_日常收入_店铺”和“收入_日常费用_店铺开支”的差,我应该怎么做计算 3.getfiles只能从特定的路径选择所有文件,能不能实现手工选择文件进行提取
|
-- 作者:vincent92 -- 发布时间:2018/5/9 11:38:00 -- 再补充一个问题,如果我想实现每次在提取数据之前,清空现在所有行,还应该在这个代码里面加点什么,麻烦大大啦 |
-- 作者:有点甜 -- 发布时间:2018/5/9 11:54:00 -- 1、
Dim fl As String = "d:\\abc.jpg"
2、
dr("收入_日常收入_店铺") = sheet(8,i).Text
dr("收入_日常费用_店铺开支") = sheet(18,i).Text
dr("差") = val(sheet(8,i).Text) - val(sheet(18,i).Text)
3、
http://www.foxtable.com/webhelp/scr/0328.htm
4、
clear http://www.foxtable.com/webhelp/scr/0419.htm
deletefor http://www.foxtable.com/webhelp/scr/0394.htm
|
-- 作者:vincent92 -- 发布时间:2018/5/10 14:36:00 -- 谢谢大佬,我又有一个问题: Dim dlg As New OpenFileDialog dlg.MultiSelect = True If dlg.ShowDialog = DialogResult.OK Then OutPut.Show("你选择了" & dlg.FileNames.Length & "个文件, 分别是:") For Each fl As String In dlg.FileNames Output.Show(fl) Next End If For Each fl As String In dlg.FileNames Dim Book As New XLS.Book(fl) Dim Sheet As XLS.Sheet = Book.Sheets(0) Dim s As String s=filesys.GetName(fl) Dim t=s.Substring(0,2) Dim i As Integer For i = 1 To 31 Dim dr As DataRow = DataTables("内部往来").AddNew dr("日期") = i dr("分公司") = t dr("内部往来_上海") = val(sheet(15,i).Text)-val(sheet(47,i).Text) dr("内部往来_温州") = val(sheet(16,i).Text)-val(sheet(48,i).Text) dr("内部往来_杭州") = val(sheet(17,i).Text)-val(sheet(49,i).Text) dr("内部往来_宁波") = val(sheet(18,i).Text)-val(sheet(50,i).Text) dr("内部往来_南京") = val(sheet(19,i).Text)-val(sheet(51,i).Text) dr("内部往来_无锡") = val(sheet(20,i).Text)-val(sheet(52,i).Text) dr("内部往来_苏州") = val(sheet(21,i).Text)-val(sheet(53,i).Text) dr("内部往来_北京") = val(sheet(22,i).Text)-val(sheet(54,i).Text) dr("内部往来_武汉") = val(sheet(23,i).Text)-val(sheet(55,i).Text) dr("内部往来_福州") = val(sheet(24,i).Text)-val(sheet(56,i).Text) dr("内部往来_天津") = val(sheet(25,i).Text)-val(sheet(57,i).Text) Next Next XLS.Reports("内往核对").Build() 上面这段代码生成的时候总是会跳出下面字样,是我的代码有问题吗 从字符串“ ”到类型“Decimal”的转换无效。 |
-- 作者:有点甜 -- 发布时间:2018/5/10 14:52:00 -- 回复4楼,代码不应该有问题。
你看看你datacolchanged事件的代码,看是不是有错误代码(可以先删除全部代码后测试) |
-- 作者:vincent92 -- 发布时间:2018/5/10 15:39:00 -- 我并没有在datacolchanged事件中设置代码,但是我每个列的格式是高精度小数,会不会和这个有关系 |
-- 作者:有点甜 -- 发布时间:2018/5/10 15:47:00 -- 加入msgbox定位出错位置
http://www.foxtable.com/webhelp/scr/1485.htm
|
-- 作者:vincent92 -- 发布时间:2018/5/10 16:07:00 -- 不行,找不出来,他是在excel报表出来后才出现报错信息 |
-- 作者:有点甜 -- 发布时间:2018/5/10 16:18:00 -- 以下是引用vincent92在2018/5/10 16:07:00的发言:
不行,找不出来,他是在excel报表出来后才出现报错信息
做一个具体的出错的实例上来测试。 |
-- 作者:vincent92 -- 发布时间:2018/5/10 16:37:00 -- 这个例子数据源在foxtable目录下的新建文件夹,我只放了3个数据源,也是有报错信息出现,麻烦帮我看下谢谢啦 |