Foxtable(狐表)用户栏目专家坐堂 → 关于提取excel文件的问题


  共有2218人关注过本帖树形打印复制链接

主题:关于提取excel文件的问题

帅哥哟,离线,有人找我吗?
vincent92
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:46 积分:398 威望:0 精华:0 注册:2018/4/27 13:27:00
关于提取excel文件的问题  发帖心情 Post By:2018/5/9 11:32:00 [只看该作者]

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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:46 积分:398 威望:0 精华:0 注册:2018/4/27 13:27:00
  发帖心情 Post By:2018/5/9 11:38:00 [只看该作者]

再补充一个问题,如果我想实现每次在提取数据之前,清空现在所有行,还应该在这个代码里面加点什么,麻烦大大啦

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/9 11:54:00 [只看该作者]

1、

 

Dim fl As String = "d:\abc.jpg"
fl = FileSys.GetName(fl)
Dim idx As Integer = fl.LastIndexOf(".")
Dim fname As String = fl.SubString(0, idx)
msgbox(fname)

 

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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:46 积分:398 威望:0 精华:0 注册:2018/4/27 13:27:00
  发帖心情 Post By: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”的转换无效。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/10 14:52:00 [只看该作者]

回复4楼,代码不应该有问题。

 

你看看你datacolchanged事件的代码,看是不是有错误代码(可以先删除全部代码后测试)


 回到顶部
帅哥哟,离线,有人找我吗?
vincent92
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:46 积分:398 威望:0 精华:0 注册:2018/4/27 13:27:00
  发帖心情 Post By:2018/5/10 15:39:00 [只看该作者]

我并没有在datacolchanged事件中设置代码,但是我每个列的格式是高精度小数,会不会和这个有关系

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/10 15:47:00 [只看该作者]

加入msgbox定位出错位置

 

http://www.foxtable.com/webhelp/scr/1485.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
vincent92
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:46 积分:398 威望:0 精华:0 注册:2018/4/27 13:27:00
  发帖心情 Post By:2018/5/10 16:07:00 [只看该作者]

不行,找不出来,他是在excel报表出来后才出现报错信息

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/10 16:18:00 [只看该作者]

以下是引用vincent92在2018/5/10 16:07:00的发言:
不行,找不出来,他是在excel报表出来后才出现报错信息

 

做一个具体的出错的实例上来测试。


 回到顶部
帅哥哟,离线,有人找我吗?
vincent92
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:46 积分:398 威望:0 精华:0 注册:2018/4/27 13:27:00
  发帖心情 Post By:2018/5/10 16:37:00 [只看该作者]

这个例子数据源在foxtable目录下的新建文件夹,我只放了3个数据源,也是有报错信息出现,麻烦帮我看下谢谢啦

 回到顶部
总数 15 1 2 下一页