以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- [求助]我这段代码是查找excel中标签的但是执行不进去呀 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=131590) |
||||
-- 作者:a937775799 -- 发布时间:2019/3/1 22:50:00 -- [求助]我这段代码是查找excel中标签的但是执行不进去呀 Dim App As New MSExcel.Application Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(fl) Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1) Dim ii As Integer = 0 Dim Rg As MSExcel.Range Dim rn As Integer = 1 For rn = 1 To 100 For j As Integer = 1 To 100 Rg = Ws.Cells(rn,j) If Rg.text = "<End>" ii = ii + 1 MessageBox.Show(ii) End If If ii=2 Exit For End If Next If ii=2 Exit For End If Next Ws.Rows(rn+1).PageBreak = MSExcel.XlPageBreak.xlPageBreakManual 以上代码 ii根本执行不进去,执行一次 要几分钟,清帮我看看 谢谢
|
||||
-- 作者:有点蓝 -- 发布时间:2019/3/1 23:00:00 -- execl文件发上来测试 |
||||
-- 作者:a937775799 -- 发布时间:2019/3/1 23:12:00 -- 顺便帮我看看 里面红色的代码 计算table里面的数量这样写 对吗
|
||||
-- 作者:有点蓝 -- 发布时间:2019/3/2 8:57:00 -- 没看懂您要计算什么?分页?生成报表后是不会有任何设计时模板的标签的,比如<End>是不存在的。 如果要计算合计,应该在Foxtable的表格里计算,然后通过变量绑定:http://www.foxtable.com/webhelp/scr/1391.htm 上传生成之后的报表,并标注一下要什么效果
|
||||
-- 作者:a937775799 -- 发布时间:2019/3/2 9:55:00 -- 我好像发现问题了,早上一起来就发现,昨天搞得太晚进了死胡同,没反应过来 \'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'代码 Dim Book As New XLS.Book(mb) \'\'模版文件 Book.Build() \'生成细节区 Dim fl As String = tf \'\'临时报表文件 Book.Save(fl) \'保存文件 Dim App As New MSExcel.Application Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(fl) \'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\' fl是已经通过模板生产好的文件里面是不存在<End>的,所以上面代码是没用的, 。。。我想实现这样的功能,比如通过模板生产文件A1.xls.。。。。A100.xsl,每生产一个文件A*.xls导入到一个Aall.xsl总文件,每次导入都在之前的后面一页插入, 导入结束,用Aall.xsl生产pdf文件
[此贴子已经被作者于2019/3/2 9:55:38编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2019/3/2 9:58:00 -- 那么为什么不通过模板直接生成一个文件?而是生成100个文件再合并为一个? |
||||
-- 作者:a937775799 -- 发布时间:2019/3/2 10:28:00 -- 因为我 记录和模板 是多对多的关系, 我先要查询记录,然后选择需要打印的模板,而且查询出来的记录不一定都要打, 我只能一个记录一个模板 组合起来 生产文件 在插入一个总文件
|
||||
-- 作者:有点蓝 -- 发布时间:2019/3/2 11:12:00 -- 合并不同的Excel到同一个工作薄 Dim dlg As New OpenFileDialog dlg.Filter= "Excel文件|*.xls" \'设置筛选器 dlg.MultiSelect = True If dlg.ShowDialog = DialogResult.OK Then Dim App As New MSExcel.Application try Dim Wb As MSExcel.Workbook = App.WorkBooks.open("f:\\test.xls") Dim ws As MSExcel.WorkSheet = Wb.WorkSheets(1) Dim rg As MSExcel.Range = ws.Cells(ws .UsedRange.Rows.Count+1,1) app.DisplayAlerts = False Dim Wb2 As MSExcel.Workbook For Each file As String In dlg.FileNames Wb2 = App.WorkBooks.open(file) Dim Ws2 As MSExcel.WorkSheet = Wb2.WorkSheets(1) Dim Rg2 As MSExcel.Range = Ws2.UsedRange rg2.Copy rg.PasteSpecial() rg = ws.Cells(ws .UsedRange.Rows.Count+1,1) Wb2.Close Next Wb.Save Wb.Close App.Quit catch ex As Exception App.Quit End try End If
|
||||
-- 作者:a937775799 -- 发布时间:2019/3/2 11:36:00 -- 我去试下,顺便问问,怎么后台新建一个excel文档呢 |
||||
-- 作者:有点蓝 -- 发布时间:2019/3/2 11:58:00 -- 参考:http://www.foxtable.com/webhelp/scr/2121.htm 创建新的工作簿。如下面的代码,就将新建一个工作簿,该工作簿的第一个工作表的名称改为hhh,同时在A1单元格写入“hhh123”,然后保存为D:\\123.xls。
Dim App As New MSExcel.Application Dim Wb As MSExcel.Workbook = App.WorkBooks.Add Wb.WorkSheets(1).name = "hhh" Wb.WorkSheets(1).range("A1").Value = "hhh123" Wb.SaveAs("d:\\123.xls") App.Quit 需要说明的是,在创建新工作簿后,该工作簿就成为活动工作簿。 |