Foxtable(狐表)用户栏目专家坐堂 → 处理EXCEL


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

主题:处理EXCEL

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


加好友 发短信
等级:超级版主 帖子:110333 积分:561507 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/24 16:13:00 [显示全部帖子]

下面函数def代码是什么?

Functions.BeginSyncExecute("def","[文件名:" & file & "]" & "," & "[Sheet名称:" & ws.name & "]")

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


加好友 发短信
等级:超级版主 帖子:110333 积分:561507 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/24 16:30:00 [显示全部帖子]

我也看不出什么原因了。可能是office的com组件多线程本身的问题吧

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


加好友 发短信
等级:超级版主 帖子:110333 积分:561507 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/24 16:42:00 [显示全部帖子]

1、开始异步前不是获取了文件列表吗,那么就可以获取文件数量。在每一个异步函数执行完毕时使用同步函数给一个public变量,赋值,然后判断public变量值是不是等于文件数量,如果是就表示执行完

2、不需要,那是web服务端才用得到的,一般异步函数没有用

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


加好友 发短信
等级:超级版主 帖子:110333 积分:561507 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/25 15:11:00 [显示全部帖子]

“同步函数”里面

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


加好友 发短信
等级:超级版主 帖子:110333 积分:561507 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/25 17:11:00 [显示全部帖子]

试试在try里quit

Dim App As New MSExcel.Application
try
    Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\Test.xls")
    Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)'指定工作表
    其它处理
catch ex As Exception

finally
    App.quit
End try

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


加好友 发短信
等级:超级版主 帖子:110333 积分:561507 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/26 15:03:00 [显示全部帖子]

我也只能使用【office的com组件多线程本身的问题】来搪塞了图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:110333 积分:561507 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/2 11:36:00 [显示全部帖子]

"N提取处理函数"这个函数代码看看

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


加好友 发短信
等级:超级版主 帖子:110333 积分:561507 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/2 14:18:00 [显示全部帖子]

看不出什么问题。在异步函数里,写日志调试一下,看看哪一句代码出错

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


加好友 发短信
等级:超级版主 帖子:110333 积分:561507 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/2 14:57:00 [显示全部帖子]

首先异步里去掉DataTables("翻译内容").StopRedraw、Dim dr As DataRow = DataTables("Table1").AddNew这些用法:http://www.foxtable.com/mobilehelp/topics/277.htm

然后日志参考:http://www.foxtable.com/webhelp/topics/0435.htm

比如:
Dim wb As MsExcel.WorkBook
    Dim WS As MsExcel.WorkSheet
    try
        wb=app.WorkBooks.open(file)
 Output.Logs("日志").Add("打开文件" & file & Date.Now )       
        For k As Integer=1 To wb.worksheets.Count
            Ws=Wb.WorkSheets(k)
 Output.Logs("日志").Add("处理sheet" & k & Date.Now )       
            Dim Rg As MSExcel.Range = Ws.UsedRange
            'lbl9.text = "Sheet名称:" & " " & Ws.name
            If rg.Count = 1 And rg(1).Value Is Nothing Then
                Continue For
            End If
            If Numcb2.Text = Nothing And Numcb3.Text = Nothing Then
 Output.Logs("日志").Add("开始xxx操作" Date.Now )    
                RowsMax = 0
                ColsMax = 0
                '获取最大行
                For i As Integer = 1 To rg.Columns.count
                    Dim r = ws.cells(excelrows,i).End(MsExcel.XlDirection.xlUp).Row
                    If r > RowsMax Then
                        RowsMax = r
                    End If
                Next
……
finally
        If ws IsNot Nothing Then ws = Nothing
        If Wb IsNot Nothing Then Wb.Close(Type.Missing, Type.Missing, Type.Missing)
        If Wb IsNot Nothing Then Wb = Nothing
Output.Logs("日志").Save("c:\log.txt",True)
Output.Logs(
"日志").Clear
    End try
End If

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


加好友 发短信
等级:超级版主 帖子:110333 积分:561507 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/2 15:35:00 [显示全部帖子]

临时表可以用,DataTables("xx")这种肯定不是临时表

 回到顶部
总数 50 上一页 1 2 3 4 5 下一页