以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 生成带图片的报表 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=185592) |
-- 作者:zhangchi96 -- 发布时间:2023/3/3 21:21:00 -- 生成带图片的报表 添加了一个按钮控件,生成电子报,代码如下 : Dim Book As New XLS.Book(ProjectPath & "Attachments\\" & "各校学生胸卡模版.xls") \'打开模板 Dim Sheet0 As XLS.Sheet = Book.Sheets("打校园卡") Sheet0(0, 25).Value = "<end>" Sheet0(1, 0).Value = "<兴学生名册,@3>" Sheet0(1, 25).Value = "<all>" Sheet0(4, 5).Value = "[学生_姓名]" Sheet0(4, 13).Value = "[学生_姓名+1]" Sheet0(4, 21).Value = "[学生_姓名+2]" Sheet0(3, 5).Value = New XLS.Picture(GetImage( ProjectPath & "\\学生照片\\照片总库\\323232201814024519" & ".jpg" )) Sheet0(3, 5).Value = New XLS.Picture(GetImage( ProjectPath & "\\学生照片\\照片总库\\" & "[身份号码]" & ".jpg" )) Sheet0(8, 5).Value = "[第1家长_电话]" Sheet0(8,13).Value = "[第1家长_电话+1]" Sheet0(8,21).Value = "[第1家长_电话+2]" Sheet0(11, 0).Value = "<兴学生名册>" Sheet0(12, 0).Value = "<end>" \'修改模板,加入信息 Dim fl As String = ProjectPath & "导出表\\" & Vars("年度") & Vars("学期") & Vars("县市") & Vars("单位名称") & "学生胸卡.xls" Book.Build() \'生成细节区(此句出错) Book.Save(fl) \'保存工作簿 Dim Proc As New Process \'打开工作簿 Proc.File = fl Proc.Start() 遇到疑问:敬请老师赐教,感谢! 1、到了 执行 Book.Build() 就出错了 2、其中的 Sheet0(3, 5).Value 本准备写成 New XLS.Picture(GetImage( ProjectPath & "\\学生照片\\照片总库\\" & "[身份号码]" & ".jpg" )) , 只是其中黄色部分写法不对,临时写个实际身份号码执行了,我这里【身份号码】是表的一列,不知道用什么括号来写? 我想:实在不行我每次选中3行,用遍历的方式把三行的身份证号赋值给一个变量,用变量来表示照片的地址 |
-- 作者:有点蓝 -- 发布时间:2023/3/4 9:01:00 -- 1、提示什么错误?建议先直接在模板里设计好,测试没有问题后,再改为使用代码动态设置 2、如果要在模板里引用图片列,应该这样用:http://www.foxtable.com/webhelp/topics/1387.htm
|
-- 作者:zhangchi96 -- 发布时间:2023/3/5 22:24:00 -- 我自己尝试这样写的,运行成功,但有个颜色问题未能解决,先上代码: \'\'\' Dim 勾选人数 As Integer For Each dr0 As Row In Tables("兴学生名册").Rows If dr0.Checked = True And dr0("有照片") = 1 Then 勾选人数 = 勾选人数 + 1 End If Next If 勾选人数 = 0 Then MessageBox.Show( "请先勾选一下需要打印的有照片的学生" ) Return \'返回 End If Dim y,x As Integer Dim i As Integer = 0 Dim Book As New XLS.Book(ProjectPath & "Attachments\\" & "各校学生胸卡模版.xls") \'打开模板 Dim Sheet0 As XLS.Sheet = Book.Sheets("打校园卡") For Each dr As Row In Tables("兴学生名册").Rows If dr.Checked = True Then i = i + 1 y = 3 + Int( ( i - 1 ) / 3 ) * 11 x = 5 + ( ( i - 1 ) Mod 3 ) * 8 Sheet0( y - 3 , x - 3 ).Value = New XLS.Picture(GetImage( ProjectPath & "\\Images\\胸卡图片.png" ),0,0,265,405) Sheet0(y, x).Value = New XLS.Picture(GetImage( ProjectPath & "\\学生照片\\照片总库\\" & dr("身份号码") & ".jpg" ),0,0,100,140) Sheet0( y + 1 , x - 2 ).Value = "姓名:" Sheet0( y + 1 , x ).Value = dr("学生_姓名") Sheet0( y + 2 , x - 2 ).Value = "班级:" Sheet0( y + 2 , x ).Value = dr("本学期_年级") & "年级(" & dr("本学期_班别") & ")班" Sheet0( y + 3 , x - 2 ).Value = "编号:" Sheet0( y + 3, x ).Value = (dr("本学期_年级") * 100 + dr("本学期_班别"))* 100 + dr.index + 1 Sheet0( y + 4 , x - 2 ).Value = "乘车:" If dr("乘车_车费") > 0 OrElse dr("暂免_乘车_车费") = True Then Sheet0( y + 4 , x ).Value = dr("乘车_车号") & dr("乘车_站点") Else Sheet0( y + 4 , x ).Value = "(不乘车)" End If Sheet0( y + 5 , x - 2 ).Value = "电话:" Sheet0( y + 5 , x ).Value = dr("第1家长_电话") Sheet0( 0 , 2 ).Style.BackColor = Color.red 红色 End If Next Dim fl As String = ProjectPath & "导出表\\" & Vars("年度") & Vars("学期") & Vars("县市") & Vars("单位名称") & "学生胸卡.xls" Book.Save(fl) \'保存工作簿 Dim Proc As New Process \'打开工作簿 Proc.File = fl Proc.Start() 其中,把 Sheet0( 0 , 2 ) 设为红色,我想改为设置成 RGB(172,220,249) 这种颜色,请问老师怎么改 |
-- 作者:有点蓝 -- 发布时间:2023/3/5 22:47:00 -- http://www.foxtable.com/webhelp/topics/1146.htm |
-- 作者:zhangchi96 -- 发布时间:2023/3/6 15:11:00 -- 谢谢老师指点! \'\'\'在上面的红色部分替换成下面的代码: Dim Style As XLS.Style = Book.NewStyle() Style.BackColor = Color.FromARGB(255,172,220,249) Style.AlignHorz = XLS.AlignHorzEnum.Center \'Center 居中 Dim Style2 As XLS.Style = Book.NewStyle() Style2.BackColor = Color.FromARGB(255,172,220,249) Style2.AlignHorz = XLS.AlignHorzEnum.Left \'.Left 居左 Style.BackColor = Color.FromARGB(255,172,220,249) For b As Integer = 0 To 5 For a As Integer = 0 To 10 If b <= 2 Then Sheet0( y - 3 + a , x - 3 + b ).Style = style2 Else Sheet0( y - 3 + a , x - 3 + b ).Style = style End If Next Next [此贴子已经被作者于2023/3/6 15:11:20编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/3/6 15:13:00 -- 保护工作表,写了什么代码? |
-- 作者:zhangchi96 -- 发布时间:2023/3/6 16:20:00 -- 找的如下代码,但不知道怎么加到我的代码里,敬请老师多多指教啊! Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\\Report.xls") Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets("同期对比") Ws.Protect(Password:="hhh") \'以密码保护 Wb.Save App.Quit |
-- 作者:有点蓝 -- 发布时间:2023/3/6 16:24:00 -- …… Dim fl As String = ProjectPath & "导出表\\" & Vars("年度") & Vars("学期") & Vars("县市") & Vars("单位名称") & "学生胸卡.xls" 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("打校园卡") Ws.Protect(Password:="hhh") \'以密码保护 Wb.Save App.Visible = True |
-- 作者:zhangchi96 -- 发布时间:2023/3/6 21:29:00 -- 此主题相关图片如下:1.jpg 出错就在红色框中的代码,蓝老师,你请看一下,是什么语法问题 ? 即使另添加一个按钮,用下列代码运行也是出错 Dim App As New MSExcel.Application Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("F:\\123.xls") Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets("打校园卡") Ws.Protect(Password:="hhh") \'以密码保护 Wb.Save App.Visible = True [此贴子已经被作者于2023/3/6 22:01:59编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/3/6 21:49:00 -- 电脑系统安装的office有问题。卸载所有office,然后重新安装完整版的office。如果有安装wps,也卸载掉 |