以文本方式查看主题

-  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=109515)

--  作者:hahahehe21
--  发布时间:2017/11/13 21:26:00
--  [求助]EXCEL报表能否生成图片后再打印?
为了避免用户修改生成好的Excel报表,能否将报表保存为图片文件,然后再显示在窗口中,再打印。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:excel报表.foxdb


[此贴子已经被作者于2017/11/13 21:45:03编辑过]

--  作者:有点甜
--  发布时间:2017/11/13 23:36:00
--  

excel保存为图片文件,参考

 

Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\\test.xls")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Dim Rg As MSExcel.Range = Ws.UsedRange
rg.copy
ClipBoard.GetImage.save("d:\\abc.jpg")
app.quit


--  作者:有点甜
--  发布时间:2017/11/13 23:37:00
--  

打印,看这个帖子 http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=108860&authorid=0&page=0&star=1

 

你也可以直接打印,用vba http://www.foxtable.com/webhelp/scr/2121.htm

 


--  作者:hahahehe21
--  发布时间:2017/11/14 22:00:00
--  回复:(有点甜)打印,看这个帖子 http://www.foxtab...
老师你好,你给的例子我还消化不了,能否在实例的窗口一中帮我设置好 员工资料卡 直接打印的代码,谢谢了。
[此贴子已经被作者于2017/11/14 22:10:28编辑过]

--  作者:有点甜
--  发布时间:2017/11/14 22:41:00
--  

Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\\test.xls")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Dim Rg As MSExcel.Range = Ws.UsedRange
rg.copy
app.DisplayAlerts=False

Dim doc As New PrintDoc() \'定义一个报表
doc.PageSetting.Width = 215 \'纸张宽度为215毫米
doc.PageSetting.Height = 280 \'纸张高度为280毫米

Dim rg1 As New prt.RenderGraphics()
Dim g= rg1.Graphics
Dim image = ClipBoard.GetImage
\'g.InterpolationMode = InterpolationMode.HighQualityBicubic
\'g.SmoothingMode = SmoothingMode.HighQuality
\'g.CompositingQuality = CompositingQuality.HighQuality
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor
\'g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.Half

g.DrawImage(image,0,0,image.width, image.height)
doc.Body.Children.Add(rg1) \'将图片对象加入报表
Doc.Preview() \'预览

app.quit


--  作者:hahahehe21
--  发布时间:2017/11/20 19:42:00
--  回复:(有点甜)Dim App As New MSExcel.Application...

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20171120194007.jpg
图片点击可在新窗口打开查看
我用您的代码没有形成报表后打印预览,而是把excel模板预览了?

--  作者:有点蓝
--  发布时间:2017/11/20 20:03:00
--  
你要打开生成后的报表,而不是模板

Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\\生成后的报表文件.xls")

--  作者:hahahehe21
--  发布时间:2017/11/20 20:57:00
--  回复:(有点蓝)你要打开生成后的报表,而不是模板Di...
还是不懂怎么修改
--  作者:有点蓝
--  发布时间:2017/11/20 21:09:00
--  
正常生成报表:http://www.foxtable.com/webhelp/scr/1145.htm

Dim Book As New XLS.Book(ProjectPath & "Attachments\\出库单.xls")
Dim 
fl As String = ProjectPath & "Reports\\出库单.xls"
Book.Build() 
\'生成细节区
Book.Save(fl) 
\'保存工作簿

Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(fl
……

--  作者:fanllys668
--  发布时间:2018/9/11 10:39:00
--  
 为什么我用这个代码生成的图片,宽变成一万多像素了