Foxtable(狐表)用户栏目专家坐堂 → 在已有excel表文件中增加sheet工作表出错


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

主题:在已有excel表文件中增加sheet工作表出错

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
在已有excel表文件中增加sheet工作表出错  发帖心情 Post By:2018/9/14 12:19:00 [显示全部帖子]

Dim Book As New XLS.Book("d:\data\工资表.xls")
For Each nm As String In DataTables("工资表").GetValues("年月","年月 is not null")
    For Each shet As XLS.Sheet In Book.Sheets
        If shet.Name.Contains(nm) = False Then
            book.Sheets.Add(nm)
        End If
    Next
Next
Book.Save("d:\data\工资表.xls")

出现下面提示错误:


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20180914122030.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/9/18 16:13:00 [显示全部帖子]

老师下面红色部份代码出错:
需求是:根据”工资月报表“模板,生成文件一个excel文件,并根据表的月份自动增加工作表

Dim dr As Row = Tables("工资月报表").Current
Dim pth As String = ProjectPath & "Reports\工资月报表\" & dr("年度") & "\"
If FileSys.DirectoryExists(pth) = False Then   '创建新文件夹
    FileSys.CreateDirectory(pth)
End If

Dim Book As New XLS.Book(ProjectPath & "Attachments\工资月报表.xls")  '提取模板
Dim fl As String = pth & dr("年度") & "-" & dr("月份") & "月份 工资月报表.xls"
Book.Build()
Book.Save(fl)

Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(fl)
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
App.Visible = True
ShowAppWindow("工资月报表",2)
Ws.PrintPreview
App.Quit


Dim fl1 As String = pth & dr("年度") & "年度 工资月报表.xls"
Dim Book1 As New XLS.Book(fl1)
Dim ls As new List(Of String)
For Each shet As XLS.Sheet In Book1.Sheets
    ls.add(shet.Name)
Next
For Each nm As String In DataTables("工资月报表").GetValues("月份")
    If ls.Contains(nm) = False Then
        ls.add(nm & "月份")
        book1.Sheets.Add(nm & "月份")
    End If
Next
Book1.Save(fl1)


错误提示:

.NET Framework 版本:2.0.50727.8762
Foxtable 版本:2018.9.9.1
错误所在事件:窗口,工资表,Button2,Click
详细错误信息:
打开存储文件失败。


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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/9/18 16:50:00 [显示全部帖子]

如何在一个excel表中根据“年度”,“月份”生成工资表?代码仅增加了工作表,但如何把模板内容增加进去?


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20180918165632.png
图片点击可在新窗口打开查看


Dim dr As Row = Tables("工资月报表").Current
Dim pth As String = ProjectPath & "Reports\工资月报表\" & dr("年度") & "\"
If FileSys.DirectoryExists(pth) = False Then   '创建新文件夹
    FileSys.CreateDirectory(pth)
End If

Dim Book As New XLS.Book(ProjectPath & "Attachments\工资月报表.xls")  '提取模板
Dim fl As String = pth & dr("年度") & "-" & dr("月份") & "月份 工资月报表.xls"
Dim fl1 As String = pth & dr("年度") & "年度 工资月报表.xls"
Book.Build()
Book.Save(fl)
Book.Save(fl1)

Dim Book1 As New XLS.Book(fl1)
Dim ls As new List(Of String)
For Each shet As XLS.Sheet In Book1.Sheets
    ls.add(shet.Name)
Next
For Each nm As String In DataTables("工资月报表").GetValues("月份")
    If ls.Contains(nm) = False Then
        ls.add(nm & "月份")
        book1.Sheets.Add(nm & "月份")
    End If
Next

Book1.Save(fl1)

[此贴子已经被作者于2018/9/18 16:54:51编辑过]

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/9/18 20:09:00 [显示全部帖子]

下面代码生成excel的工作表名称“sheet1”,如何生成:2月份,3月份,根据“dr("月份") + 月份,如何调整?谢谢

Dim dr As Row = Tables("工资月报表").Current
Dim pth As String = ProjectPath & "Reports\工资月报表\" & dr("年度") & "\"
If FileSys.DirectoryExists(pth) = False Then   '创建新文件夹
    FileSys.CreateDirectory(pth)
End If

Dim Book As New XLS.Book(ProjectPath & "Attachments\工资月报表.xls")  '提取模板
Dim fl As String = pth & dr("年度") & "-" & dr("月份") & "月份 工资月报表.xls"
Book.Build()
Book.Save(fl)

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/9/18 20:29:00 [显示全部帖子]

工资报表是每个月的,我的需求是:每个月生成一个工资月报表,并自动增加到另一个总Excel表中去,如5楼图一样?

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:工资表.zip


[此贴子已经被作者于2018/9/18 20:34:23编辑过]

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/9/18 21:14:00 [显示全部帖子]

这个代码如何编辑?

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/9/19 23:46:00 [显示全部帖子]

折腾了三个小时还是出错,只有请老师帮忙:

Dim dr As Row = Tables("工资月报表").Current
Dim pth As String = ProjectPath & "Reports\工资月报表\" & dr("年度") & "\"
If FileSys.DirectoryExists(pth) = False Then   '创建新文件夹
    FileSys.CreateDirectory(pth)
End If
Dim st As String =  dr("月份") & "月份"
Dim yfl As String = pth & dr("年度") & "-" & dr("月份") & "月份 工资月报表.xls"
Dim nfl As String = pth & dr("年度") & "年度 工资月报表.xls"   '指定文件名
Dim bok As New XLS.Book()
If FileSys.FileExists(nfl) = False Then
    Bok.Save(nfl)        '保存年度工资月报表
End If

If FileSys.FileExists(yfl) = True Then
    ''======单个工资月报表汇复制到总工资年度表======
    Dim Bok1 As New XLS.Book(yfl)    '每月工资月报表
    Dim Bok2 As New XLS.Book(nfl)   '年度工资月报表
    For Each sht As XLS.Sheet In bok.Sheets   '年度工资月报表工作表
        Dim shet As XLS.Sheet = Bok1.Sheets(st)
        If sht.Name <> st Then
            Bok1.Sheets.Remove(shet)
            Bok2.Sheets.Add(shet)
            Bok2.Save(nfl)
        Else
            bok2.Sheets.Remove(shet)
            bok2.Save(nfl)
            Bok1.Sheets.Remove(shet)
            Bok2.Sheets.Add(shet)
            Bok2.Save(nfl)
        End If
    Next
Else
    MessageBox.Show("请先生成本月工资月报表,再执行生成Pdf")
End If

MessageBox.Show("Pdf已生成!")


图片点击可在新窗口打开查看此主题相关图片如下:aaaa2.png
图片点击可在新窗口打开查看


 回到顶部