C# EXCEL的区域复制格式问题

27257674 2008-06-02 08:45:44
各位前辈,大家好
我是初次使用C#对EXCEL文件进行操作。
我现在将我出现的问题说一下:
我是想进行条码打印,模板放在一个叫TEMPLATE.XLS的文件里面的。然后根据要进行打印的数据条数进行多次条码打印.
我的思想是:
1:先根据要打印的数据条数,循环复制模板文件的A1--AD11的内容。
2:进行数据填充.

但是我在进行复制时,模板文件里面含有合并了的单元格信息,全部丢失.也就是说新生成的EXCEL文件里面,所有单元格都没有合并过。而且有一些字变得非常小。等等。

我使用的代码大此如下:

Excel.Range objCopySrc = (Excel.Range) objWorkSheet.get_range("A1", "AD11");
Excel.Range objCopyDESC = (Excel.Range) objWorkSheet.get_range("A12", Type.mssing);

objCopySrc.copy(objCopyDESC);// 不行,生是生成了,但没有合并信息

objCopySrc.Select();
objCopySrc.copy(Type.Missing);

objCopyDESC.Select();
objCopyDESC.PasteSpecial(...xlPasteAll, ....stract(add..),false,false);// 还是不行
我在试第二个参数时,所有都用了,当使用后缀为none的那个时,生成的EXCEL文件里只有数据,表格都没有。
后来我将第一个参数改为什么FAMU..S之类的那个时,第二个参数无论如何变,出来的EXCEL,都只有一项数据
后面的二项什么都没生成(表格框,内容都没得,空白一片)。

我就不知道是什么原因了。
请各位前辈 们帮帮忙,谢谢了,哦我使用的开发工具是C#.NET






...全文
2436 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ziseliuxingzh 2008-06-06
  • 打赏
  • 举报
回复
OK.wait for ur mail
ziseliuxingzh 2008-06-05
  • 打赏
  • 举报
回复
不会吧,我复制的都是有单元格合并的,要不你吧问题代码发给我看看:
邮箱: ziseliuxingzh@163.com
27257674 2008-06-05
  • 打赏
  • 举报
回复
我现在家里,我明天了发给你看.

目前我已经使用XSD实现了

就是在XML里面要配置很多信息,
哈俣
ziseliuxingzh 2008-06-04
  • 打赏
  • 举报
回复
this.xSheetOut.get_Range("A1", System.Type.Missing).PasteSpecial(Excel.XlPasteType.xlPasteFormats,
Excel.XlPasteSpecialOperation.xlPasteSpecialOperationNone, System.Type.Missing, System.Type.Missing);
这是我做的例子
ziseliuxingzh 2008-06-04
  • 打赏
  • 举报
回复
objCopyDESC.PasteSpecial(...xlPasteFormats, ....stract(add..),false,false);// 注意红色的地方, 测试通过
27257674 2008-06-04
  • 打赏
  • 举报
回复
楼上的两位,谢谢你们的回答,
但以上两种我都测试过,均没有通过

他只是把颜色信息,边框信息复制了.单元格的合并信息没有复制过去.
比如说:有一个区域是,由6个单元格组成,在复制前是6个合并成一个的,内容为:入库标签,颜色:蓝.边框:双实线

采用你们的方法复制后,边框及颜色均成功.但这个区域变成了6个单元格,内容只显示在第一格中,而且被第二个单元格挡住一部分.

======================================================================
由于测试N久都没有通过
目前我使用的方法是,用C#直接循环画EXCEL模板.然后再填充数据.已通过

但是由于通用性太差.目前已改进.
采用.XSD文件-->生成XML
对XML配置后,在C#里根据配置信息画表格信息,这样只需要改XML就可以实现所有EXCEL操作.


方法已通过.
====================================================================
再次感谢以上各位的回复.


另外,想附加一个问题:

在C#里,如何实现强制分页.
我知道可以采用:
Excel.Range obj = workSheet.get_range(Excel.Rows[N,Type.Missing]);
obj.PageBreak = Excel.xlPageBreak.Manual

但我怎么每次让他在指定行(N)上强制分页时,他么老不对。而且输出EXCEL文件的速度变得超慢。


有谁知道吗。









27257674 2008-06-03
  • 打赏
  • 举报
回复
没人回说晕哦
27257674 2008-06-03
  • 打赏
  • 举报
回复
我就想实现在COPY的时候,把模板的所有信息全部复制下来,包括合并信息,颜色,字体等.
27257674 2008-06-03
  • 打赏
  • 举报
回复
期待解决中....
wtzhuwork 2008-06-02
  • 打赏
  • 举报
回复
帮你顶下.
你想实现什么功能?
27257674 2008-06-02
  • 打赏
  • 举报
回复
怎么没人回呀
自己UP一个先
27257674 2008-06-02
  • 打赏
  • 举报
回复
后来,我在EXCEL文件里,录制了一个宏后,参照宏做,还是没有实面。

62,039

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧