以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  多个产品分别导出至同个excel工作簿的不同工作表  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=122357)

--  作者:jeffic
--  发布时间:2018/7/23 20:22:00
--  多个产品分别导出至同个excel工作簿的不同工作表
老师请教下,我想实现一个功能 多个产品分别导出至同个excel工作簿的不同工作表 设计一个报表输出按钮,代码如下:模板没有问题,现在的问题是执行代码后,报表除了工作表名有变化,其他没反应。老师帮我看看哪里的问题。
Dim CPMS As List(OF String) = DataTables("统计表").GetValues("品名","[品名] is not null")

Dim F1 As String = ProjectPath & "Reports\\业绩表.xls"

Dim Book As New XLS.Book(ProjectPath & "Attachments\\业绩表.xls") \'打开模板

For Each CPM As String In CPMS

Dim sheet As XLS.Sheet = Book.Sheets(0)

Sheet(3,10).Value =" < [产品名1] = \'"& cpm &"\' > "     \'修改模板,加入筛选条件

Book.Build() \'生成细节区

sheet.Name= cpm 

book.Sheets.Add(sheet.name)

Book.Save(F1) \'保存工作簿
Next
Dim Proc As New Process \'打开工作簿
Proc.File = F1
Proc.Start()

--  作者:有点蓝
--  发布时间:2018/7/23 20:39:00
--  
Dim CPMS As List(OF String) = DataTables("统计表").GetValues("产品","[产品] is not null")
Dim F1 As String = ProjectPath & "Reports\\订单.xls"
Dim Book As New XLS.Book(ProjectPath & "Attachments\\订单.xls") \'打开模板
Dim sheet As XLS.Sheet = Book.Sheets(0)
For Each CPM As String In CPMS
    Dim sh2 As XLS.Sheet = Book.Sheets.Add(CPM )
    For r As Integer = 0 To sheet.Rows.Count - 1 \'填入数据
        For c As Integer = 0 To sheet.Cols.Count -1
            sh2(r, c).Value = sheet(r, c).Value
        Next
    Next
    sh2(3,9).Value =" < [产品] = \'" & cpm & "\' > "     \'修改模板,加入筛选条件
Next
Book.Sheets.RemoveAt(0)
Book.Build() \'生成细节区
Book.Save(F1) \'保存工作簿
Dim Proc As New Process \'打开工作簿
Proc.File = F1
Proc.Start()


--  作者:jeffic
--  发布时间:2018/7/23 20:56:00
--  刚试过
执行有点问题,打开存储文件失败,怎么破
--  作者:有点蓝
--  发布时间:2018/7/23 21:01:00
--  
改回自己的文件名、列名,关闭所有已经打开的Execl文件
--  作者:jeffic
--  发布时间:2018/7/23 21:27:00
--  
好的,谢谢老师,辛苦了。越来越爱上这个有爱的论坛了!