c# excel print 打印 将所有列调整为一页

excel有时候列数比较多,行数也比较多,转换成xps文档的时候,一般是通过打印来实现。

由于打印的范围限制,所以会出现本来在一行的数据,由于列数比较多,溢出范围,被打印到两页了。

为解决这个问题,需要设置一下sheet的缩放。

1.测试缩放在excel程序中:

在excel程序中有打印设置,如图(默认是无缩放的):

设置缩放(将所有列调整为一页),如图:

经过测试,这样设置后的打印效果,同一行的数据打印后在同一页了。

2.c#代码实现:

代码实现的方式是设置WorkSheet的PageSetup.FitToPagesTall属性。

测试代码如下:

 1  Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
 2                         Type tp = app.GetType();
 3                         Microsoft.Office.Interop.Excel.Workbooks workBook = app.Workbooks;
 4                         Type elType = workBook.GetType();
 5                         object objelName = sourceFile;
 6                         Microsoft.Office.Interop.Excel.Workbook ebook = (Microsoft.Office.Interop.Excel.Workbook)elType.InvokeMember("Open", System.Reflection.BindingFlags.InvokeMethod, null, workBook, new Object[] { objelName, true, true });
 7                         Object missing = System.Reflection.Missing.Value;
 8                         for (int i = 0; i < ebook.Worksheets.Count; i++)
 9                         {
10                             Worksheet ws = ebook.Worksheets[i + 1];
11                             ws.PageSetup.Orientation = XlPageOrientation.xlPortrait;//页面方向竖向
12                             ws.PageSetup.Zoom = false;
13                             ws.PageSetup.FitToPagesWide = 1;
14                             ws.PageSetup.FitToPagesTall = false;
15                         }
16                         ebook.PrintOut(missing, missing, missing, missing, missing, true, missing, xpsFile);
17                         tp.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, app, null);
18                         workBook.Close();
19                         app.Quit();

经验证,可行。

感谢每一位阅读此篇文章的人,希望可以帮到你。

时间: 2024-08-28 03:07:03

c# excel print 打印 将所有列调整为一页的相关文章

AWK打印部分数据列

echo $LINE|awk '{ i = 3; while (i<=NF) {print $i; i++}}' 打印第三列起,直到最后一列 --------------------------------------分割线-------------------------------------- 知数堂 (http://zhishuedu.com)培训是由资深MySQL专家叶金荣.吴炳锡联合推出的专业优质培训品牌,主要有MySQL DBA实战优化和Python运维开发课程,是业内最有良心.最

unity3d 下操作excel 与打印

因项目需要,需在unity下实现写入excel.打印功能.因之前在winform里操作过excel,故顺心应手=== 说明:本次只实现了简单操作步骤,在实际项目需要中,在此基础上扩展即可. 需求: 1.将各种统计数据插入到excel表格中.文字.数字.图片.时间---- 2.打印excel表格 ==我们首先来做第一步吧. 操作excel,我一直使用的是NPOI插件,自我感觉该插件非常不错,从java移植到.NET下的.抱着一颗激动的心开始流程-- 1.将NPOI.DLL文件拷贝到unity\As

linux下处理excel里copy的某列的字符串,去除行末空格并添加特殊字段

背景:从excel里copy出一列数据到txt,然后放到lunx下处理,发现每一行末尾都是固定个数的空格,我想要在每行字符串末尾加固定字段并逗号隔开输出, cat fastjason.txt | awk -F / '{print $3}' | sort | uniq > fast.log将特定字段取出 :cat fast.log |xargs echo >fast.log 去掉每行末尾的不定个数空格,全部放到一行,每个应用以空格隔开:sed -i 's/ /\n/g' fast.log,将空格

Excel报表打印(POI)

1.需求说明 在企业级应用开发中,Excel报表是一种最常见的报表需求.Excel报表开发一般分为两种形式:1.为了方便操作,基于Excel的报表批量上传数据2.通过java代码生成Excel报表. 2.Excel报表概述 目前市面上的Excel分为两大版本Excel2003和Excel2007及以上两个版本,它们区别如下: 3.常见的Excel操作工具 Java中常见的用来操作Excl的方式一般有2种:JXL和POI.JXL只能对Excel进行操作,属于比较老的框架,它只支持到Excel 95

后台生成EXCEL文档,自定义列

后台生成EXCEL文档,自定义列 //response输出流处理 //设置编码.类型.文件名 getResponse().reset(); getResponse().setCharacterEncoding("utf-8"); getResponse().setContentType("application/vnd.ms-excel"); String useragent = getRequest().getHeader("user-agent&quo

C# 使用printDocument1.Print打印时不显示 正在打印对话框

C#使用printDocument1.Print打印时不显示正在打印对话框有两种方法 第一种,使用PrintController PrintController printController = new StandardPrintController(); printDocument1.PrintController = printController; printDocument1.Print(); 第二种,把窗体的TopMost设为True

在EXCEL中如何让一列数字变成文本格式?就是想让单元格的左上角变一个绿绿的?

如何在EXCEL中如何让一列数字变成文本格式?就是想让单元格的左上角变一个绿绿的? 解决方案:将整列单元格格式设为文本,然后,选中该列,数据--分列--完成 详细步骤: (1)选中1行或者1列,再单击鼠标右键,选择设置单元格格式: (2) (3) (4)单击[分列],再单击完成即可

window.print()打印页面指定内容(使用iframe保证原页面不失效)

使用window.print()时会出现两个问题: (1)直接使用window.print() 打印的是整页内容-->无法实现打印指定区域 (2)打印时替换body中的内容,打印完成后再替换回来-->这样会导致原来页面事件失效 使用iframe即可打印指定内容,也可保证页面不失效,具体方法如下: 1.将打印的内容独立出来为一个print.html文件,并为页面添加打印事件 <!DOCTYPE html> <html> <head> ... </head

Web window.print() 打印

web打印 window.print() 我只给出比较有效的,方便的打印方法,有些WEB打印是调用ActiveX控件的,这样就需要用户去修改自己IE浏览器的Internet选项里的安全里的ActiveX,将它们全部启用,有些麻烦,翻了下网络, 下面的方法是可以直接打印,而不会去修改IE的Internet选项. window.print来打印页面,页面上别的元素也会被打印处理,页头页尾的格式也不好控制.• 常用方法:大部分情况会把查询的结果绑定到DataGrid上来,然后打印DataGrid.这种