最近在帮公司winfrom项目组开发一个打印单据的功能,由于之前没有操作过excel(个人技术比较菜。。。),所以在开发过程中遇到了一些应该比较简单的(但我不会)问题。

  需求是打印出库单数据,出库单是以excel为模板打印出来,不过需要设定每页分固定的多少条数据,因为太多的话一张单据放不下,可以打印多张单据

  我的做法:是将数据导出到excel模板中,首先做好excel模板,只不过把固定的表头设定好就行(当然也可以用code直接写进去,那只需要一个空模板就好了,我这里可以直接在模板上设定好,没有影响)。为了不影响打印效果,使用打印分页符来处理该问题,

       1、首先选择微软自带的API:Microsoft.Office.Interop.Excel.Application,实例化一个对象:Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();

       2、加载模板Microsoft.Office.Interop.Excel.Workbook wb=excel.Workbooks.Open(“文件绝对路径”);

       3、我的模板放在了excel的第一个sheet里,所以var sheet = wb.Worksheets[1];

         4、这样模板就可以加载好了,下面就是讲数据填充进去就可以了,当然可以根据需求对应添加,这里只举个例子:sheet.Cells[i, j] = “111”;//将数据添加到sheet的第i行j列

  重点来了:将数据加载完后,接下来就需要分页处理了

         5、在需要分页的地方:sheet.HPageBreaks.Add(sheet.Range["A12"]);//假如在sheet的第13行开始分页,因为该方法会在指定单元格上方插入分页,即在第12行单元格上方添加分页符。(横向分页符)

                  sheet.VPageBreaks.Add(sheet.Range["F1"]); //在F列单元格的左侧添加分页符                                                                                                                                    (纵向分页符)

         6、然后覆盖所有数据设置打印区域:sheet.PageSetup.PrintArea = "A1:X20";//只打印sheet的A1-X20的区域(矩形区域)

        7、保存 :wb.SaveAs(savePath);//SaveAs()方法的参数挺多的,可以查看官方文档传递需要的参数,有如果文件存在则会提示是否覆盖已保存的文件,但是我在做的时候如果已存在的文件处于打开状态就会报错了,我解决的办法是:try...catch{}异常,

            判断异常然后给用户一个弹窗提示,检查是否有同名同类型的文件打开。

其他功能还有比如设置分页预览模式查看效果:sheet.ViewMode = ViewMode.Preview;

  当然还有很多功能,如果需要可以查询API文档学习,这里就不赘述了。

转载于:https://www.cnblogs.com/qyxfirstblog/p/10077260.html

C#操作excel的打印分页符问题相关推荐

  1. C#操作Excel,打印分页设置

    使用excelHelper可以直接对excel进行单sheet多分页的导出.但是却不知道模板的打印区域,因此需要根据数据多少来动态设置打印区域,代码如下: excelApp.ActiveSheet.P ...

  2. 删除excel中的分页符

    http://blog.5d.cn/user4/moil/200609/306416.html 无法删除excel中的分页符 解决如下 添加.删除或移动分页符 在"视图"菜单上,单 ...

  3. html如何设置打印分页打印出来,网页中如何用 CSS 设置打印分页符

    Word 中按 Ctrl + Enter 创建一个分页符,方便打印,其实网页中也可以,用 CSS 的 page-break-after:always;. 第 1 页 第 2 页 第 3 页 任何浏览器 ...

  4. python操作Excel设置打印标题时碰到的一个小问题

    最近在学习python操作Excel,在网上找到一段代码,将几个工作表合并成一个工作簿的多个工作表,实现以下效果: 首先,将要合并的工作表名存储在列表中,使用for循环写入Excel中 # 将要导入的 ...

  5. html 页面打印 分页符,html - 浮动的HTML / CSS打印分页符不起作用(例如:引导程序) - 堆栈内存溢出...

    首先,分页符不能在绝对定位的元素中使用,因此请确保分页符不在一个元素中. 现在,由于浮动导致分页符被忽略,因此我们需要清除浮动. 问题很clear: both; 如果带有page-break-afte ...

  6. html仿excel冻结 css,excel的人工分页设置可实现

    42Excel具有人工分页的功能,它可以______ 1水平方 打开excel表格,在单元格中输入一些数据,下图中可以看到此时excel表格是普通的显示模式. 在页面上方的工具栏中点击"视图 ...

  7. linux百万行数据加分页符,百万级数据量报表全量导出

    java中使用poi导出Excel详解java当初把核心处理设成Unicode,带来的好处是代码适应了多语言环境.然而由于老外的英语只有26个字母,有些情况下,一些程序员用8 位的byte处理,一不小 ...

  8. Word中分隔符 分页符 分栏符 换行符 分节符的用法

    在写论文时,论文格式要求目录需要用"Ⅰ.Ⅱ.Ⅲ.-"作为页码,正文要用"1.2.3.-"作为页码.而有的用户此时就要将目录存为一个单独的文件,再设置不同的页码格 ...

  9. 打印5列五颗星_13个Excel快捷打印技巧,让你熟练掌握打印机操作

    对于许多朋友来说,用Excel打印文件仍然是一个头条的问题,文件如何在表格中进行打印设置许多朋友还是比较陌生.今天我们就通过13个打印小技巧,让大家了解一下打印机的常规操作. 1.打印居中显示 更改居 ...

  10. 计算机如何分页打印,[计算机]Excel表格如何分页打印、自动分页、取消分页等技巧.doc...

    [计算机]Excel表格如何分页打印.自动分页.取消分页等技巧.doc 上传人:max****ui 文档编号:13468786 上传时间:2019-01-18 格式:DOC 页数:5 大小:334.1 ...

最新文章

  1. 连接sftp服务器命令
  2. C#实现窗口最小化到系统托盘
  3. binding.filter(filter) will trigger OData request to backend
  4. 2017西安交大ACM小学期数据结构 [树状数组]
  5. 代理模式用来初始化的延迟下载
  6. 【ZOJ - 4020 】Traffic Light (bfs,分层图)
  7. ArrayList add方法深度解析。
  8. 设计模式之原型模式(Prototype)
  9. sql插入数据时自动插入时间
  10. mysql数据库技术与应用实训项目_MySQL数据库项目实训
  11. 淘宝网用什么样的服务器
  12. Java单例模式实现方式
  13. 2.2.7 虚拟Ethernet以太网卡
  14. ubuntu18.04系统无法正常连接网络解决办法
  15. 学术会议墙报_第十三届全国振动理论及应用学术会议顺利召开
  16. mysql dparser.dll_dparser.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家
  17. 单片机自动售货机c语言,单片机自动售货机源代码
  18. ArcGIS使用字体文件制作符号库!
  19. c语言根据月份判断季节指针,输入年份和月份,判断是否闰年?并根据月份判断是什么季节和有多少天...
  20. 十分钟带你入门Chrome插件开发

热门文章

  1. WINVNC源码阅读(七)
  2. BSL编程语言 —— 系统化程序设计
  3. mac php pear pecl,mac 安装 pecl pear
  4. obsidian如何修改主题
  5. 计算机学生的理想定位范文,我理想中的学校作文范文(通用3篇)
  6. os 安装 php redis,Mac Xamp安redis及安装php-redis扩展
  7. JDK13 Switch表达式新特性
  8. 如何启用计算机的远程服务,如何启用远程Windows命令行管理程序
  9. bouncycastle
  10. EXCEL 快捷键集合