找回密码
 立即注册

QQ登录

只需一步,快速开始

yimi020103
金牌服务用户   /  发表于:2015-3-26 10:17:00
11#
回复 10楼iceman的帖子

就是左上角的单元格里边添加了一张小图片,是我们公司的商标
用ClipboardCopy把包括图片在内的表头区域的内容复制粘贴之后图片就没了,其它的能够顺利复制
我觉得……会不会在制作模板的时候把图片的属性设置下就能复制了呢?
还是说只能把图片提取出来再添加到每一页去?
提取图片具体应该用什么方法?
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-3-26 15:53:00
12#
回复 11楼yimi020103的帖子

请问你设置图片到什么地方了呢?BackgroundImage还是Vaue。
如果是通过属性设置,那么就可以通过属性获取。
另外ImageCellType还有GetImage方法可以获取Image对象。

请提供设置Image的代码,我帮你看看具体该如何获取。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
yimi020103
金牌服务用户   /  发表于:2015-3-26 17:25:00
13#
回复 12楼Alice的帖子

图片是用设计器添加到模板里的,程序里没对图片做啥操作
我看了下图片的属性,好像是BackgroundImage
不过属性这么多,都看不懂是做什么的

ImageProperties.jpg (73.38 KB, 下载次数: 467)
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-3-27 10:10:00
14#
回复 13楼yimi020103的帖子

没有你说的属性更改即可复制。

你可以从设置图片的单元格的backgroundImage属性获取这个图片,然后添加到目标打印到sheet中。
打印设置Image的代码参考:
  1. C# Copy Code  
  2. // Create PrintInfo object and set properties.
  3. FarPoint.Win.Spread.PrintInfo printset = new FarPoint.Win.Spread.PrintInfo();
  4. printset.Colors = new Color[] {Color.Green, Color.Yellow, Color.Gold, Color.Indigo, Color.Brown};
  5. printset.Images = new Image[] {Image.FromFile("C:\\images\\point.jpg"), Image.FromFile("C:\\images\\logo.gif"), Image.FromFile("C:\\images\\icon.jpg")};
  6. printset.Header = ""/fn\"Book Antiqua\" /fz\"14\" Print job for FarPoint Inc./n ";
  7. printset.Footer = "/g\"1\"/r/cl\"4\"This is page /p of /pc";
  8. // Set the PrintInfo property for the first sheet.
  9. fpSpread1.Sheets[0].PrintInfo = printset;
  10. // Print the sheet.
  11. fpSpread1.PrintSheet(0);

复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
yimi020103
金牌服务用户   /  发表于:2015-4-2 15:56:00
15#
回复 14楼Alice的帖子

这俩天忙别的业务呢,回复晚了
那个背景图片我在单元格的属性里找不到诶,单元格里貌似只能设置背景颜色
BackgroImage似乎是整个控件的属性,我怎样才能把它设置成每隔多少行就显示一次呢
您的打印设置里应该怎么设置这个图片出现在哪个单元格里?
看这个背景图片的属性,似乎是一个sheet一个图片会方便一点……
可惜多sheet导出的那个方法我还是没调通
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-4-2 17:27:00
16#
回复 15楼yimi020103的帖子

我理解你的意思。目前有两个问题。
1.多个sheet的导出。
-->请问方法没调通,问题具体的表现是什么?你是如何出现这个问题的。

2.图片
建议你开个新帖,我们在新帖里继续交流图片的问题,这样便于查阅。
因为Spread有ImageCellType可以设置图片,也可以添加一个Shape展示图片。所以我需要具体了解你是想怎么设置图片的。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
yimi020103
金牌服务用户   /  发表于:2015-4-3 15:09:00
17#
回复 16楼Alice的帖子

……真的 不知不觉成了俩问题

第一个问题呢 就是针对下边这段代码:
  1.             FarPoint.Win.Spread.FpSpread Spread = new FarPoint.Win.Spread.FpSpread();
  2.             FarPoint.Win.Spread.SheetViewCollection coll;
  3.             coll = fpSpread1.Sheets;
  4.             coll.Add(fpSpread2.Sheets[0]);
  5.             FarPoint.Win.Spread.PrintInfo printset = new FarPoint.Win.Spread.PrintInfo();
  6.             printset.PrintToPdf = true;
  7.             printset.PdfWriteMode = PdfWriteMode.Append;
  8.             printset.PdfFileName = "PrintPDF.pdf";
  9.             
  10.             for (int i = 0; i < coll.Count; i++)
  11.             {
  12.                 Spread.Sheets.Add(coll[i]);
  13.             }
  14.             
  15.             
  16.             this.Controls.Add(Spread);
  17.             
  18.             Spread.Sheets[0].PrintInfo = printset;
  19.             Spread.Sheets[1].PrintInfo = printset;
  20.             Spread.Sheets[2].PrintInfo = printset;
  21.             Spread.PrintSheet(-1);
复制代码


其中的
  1. coll.Add(fpSpread2.Sheets[0]);
复制代码

有点问题,在添加某个fpspread的sheets[0]的时候可以成功添加
在我回复的那种,在循环里添加同一个sheet的时候它就不添加
而会覆盖到最后一个,试了好多次无解。

图标的那个问题已经解决了一部分
在模板里的单元格是text类型下可以设置背景图片,这样子是可以复制的
只不过复制之后的居中对齐效果没了,把这个搞定就大功告成啦!
不过模板里挺容易的,在代码里设置就很烦,我这样子定义:
  1.                 FarPoint.Win.Spread.CellType.TextCellType textType = new FarPoint.Win.Spread.CellType.TextCellType();
  2.                 textType.BackgroundImage.AlignHorz = FarPoint.Win.HorizontalAlignment.Center;
  3.                 textType.BackgroundImage.AlignVert = FarPoint.Win.VerticalAlignment.Center;
复制代码

它跟我说忘了new什么东西
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-4-3 17:49:00
18#
回复 17楼yimi020103的帖子

1.但从代码不能重现。
请提供一个可以重现该问题的简单的Demo,我帮你看看问题出在哪里。

2.不能这样直接去设置AlignHorz属性。
代码请参考:
  1.    FarPoint.Win.Spread.CellType.TextCellType textType = new FarPoint.Win.Spread.CellType.TextCellType();
  2.             FarPoint.Win.Picture p=new FarPoint.Win.Picture();
  3.             p.AlignHorz = FarPoint.Win.HorizontalAlignment.Center;
  4.             p.AlignVert = FarPoint.Win.VerticalAlignment.Center;
  5.             textType.BackgroundImage = p;
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
yimi020103
金牌服务用户   /  发表于:2015-4-17 10:59:00
19#
回复 18楼Alice的帖子

前些天出差了,刚回来继续弄这个问题
复制sheet不能复现就算了吧,我也不能把内部代码都给你
图片的问题,picture不用new行吗?用了new图片就没了
我需要把原来表单里某单元格的图片取出来,有没有类似这样的方法:
  1. FarPoint.Win.Picture p = new FarPoint.Win.Picture();
  2. p.Image = fpSpread1.Sheets[0].Cells.Get(1, 1).BackgroundImage;
  3. p.AlignHorz = FarPoint.Win.HorizontalAlignment.Center;
  4. p.AlignVert = FarPoint.Win.VerticalAlignment.Center;
  5. textType.BackgroundImage = p;
复制代码

或者别的取单元格图片的方法也行
拜托了~
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-4-17 14:35:00
20#
回复 19楼yimi020103的帖子

18楼展示的是给单元格设置图片的方法。

如果已经设置了图片,要从单元格获取,请使用如下代码方法。
  1. TextCellType txt= fpSpread1.Sheets[0].GetCellType(0, 0) as TextCellType;
  2.           FarPoint.Win.Picture p = txt.BackgroundImage;
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部