以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  用excel报表生成网页时的图片路径问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=171348)

--  作者:reachtone
--  发布时间:2021/8/27 9:15:00
--  用excel报表生成网页时的图片路径问题
我现在的foxtable文件保存在一个文件夹中,比如server;
网页文件保存在另一个文件夹,比如www,包括excel模板文件也是在这个文件夹。
这样的好处是,前后端文件分开,便于管理。

目前碰到的问题是,excel模板使用图片列时,这些图片还必须放到foxtable项目所在的images文件夹中才能正常生成报表,否则就没办法显示。
我现在想把图片放到其他文件夹里,怎么处理呢?

--  作者:有点蓝
--  发布时间:2021/8/27 9:22:00
--  
图片列指定存放目录:http://www.foxtable.com/webhelp/topics/0088.htm
--  作者:reachtone
--  发布时间:2021/8/27 9:47:00
--  
参考高级版帮助,加上了以下代码:
Dim Book As New XLS.Book(bk)
book.AddDataTable("员工","test","S e l e c t * f r o m 员工 w h e r e 姓名 = \'王伟\'")
book.DataTables("员工").DataCols("照片").ExtendType = ExtendTypeEnum.Images
book.DataTables("员工").DataCols("照片").SourceFolder = "d:\\www\\images"
但后面两行代码出错,提示不存在名为“员工”的datatable

--  作者:有点蓝
--  发布时间:2021/8/27 9:51:00
--  
要在主表的列属性里设置,在之前存储图片的时候就要存储为正确的路径即可。生成报表的时候不需要加这个
--  作者:reachtone
--  发布时间:2021/8/27 9:58:00
--  
我这个foxtable项目里,用于生成excel报表的都是基于后台的临时datatable:


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


--  作者:chen37280600
--  发布时间:2021/8/27 10:01:00
--  
我教你一个最直接粗暴的方法,我现在分享的A2迷你产品报价系统,excel导出带图片,就是这个方法

图片列直接写绝对路径,就能导出

在导出前,对明细表加一个临时列存放图片,然后循环一次明细表,把图片的绝对路径写在临时列里,excel模板也放这个

 dr("TempPicCol") = "c:\\aa.jpg"

 

此主题相关图片如下:1.png
按此在新窗口浏览图片

图片点击可在新窗口打开查看


我的需求比你还复杂,我还要把客户上传的图片,先压缩放到某个临时的文件夹里,然后引用去生成excel,最后再删除文件夹。
狐表的生成Excel有内存限制,基本上超过20m的带图片excel,都会生成失败,一定要压缩。
我也是后端生成报表,情况跟你一样



[此贴子已经被作者于2021/8/27 10:05:36编辑过]

--  作者:有点蓝
--  发布时间:2021/8/27 10:04:00
--  
没错,就是【后台的临时datatable】图片列使用的是绝对路径即可
--  作者:reachtone
--  发布时间:2021/8/27 10:05:00
--  
这样总觉得别扭啊,我的www文件夹就是放前端文件的,图片都在这个目录里,从这里直接读取最好。
问题是,我按照5楼帮助里的写法,是报错的,不知道这是不是bug

--  作者:有点蓝
--  发布时间:2021/8/27 10:07:00
--  
报什么错?5楼的用法是ftp的,不要和3楼的用法搞混了,不是一回事
--  作者:chen37280600
--  发布时间:2021/8/27 10:08:00
--  
别直接读取,客户传的说不定是小米11拍的50m一张的图片,2张你的excel就爆了

肯定是先压缩,再引用到excel,最后删除缓存的压缩图片,科学办法