同一个excel文件在不同电脑上打印高度不同的原因
因为最近甲方领导对excel导出的文件要求比较高,所以发现这个问题,同一个excel表格,在领导电脑上打印是一页刚刚好,而在其他人的电脑上打印则超过了一页。
一开始我们想到了几种可能的原因:
1、页面缩放
2、页边距设置
3、打印机设置
4、excel选项-默认字体设置
5、excel选项-标尺设置
6、不同excel版本问题
结果试了以后都不是这些原因导致的。后来经公司总部excel专家指导,发现是电脑dpi设置问题导致的,跟excel无关。
设置地方:控制面板-所有控制面板项-显示。如下图
我们正常的显示都是100%(默认)也就是dpi为96,而甲方领导因为大屏幕字太小说,所以自己设置为125%,也就是dpi为120。所有导致了同一个excel在不同电脑上打印效果不同。
下面是我们测试的经过
2、调整系统dpi为每英寸120像素(即125%),然后打开之前创建的excel表格,宽度和高度变成如下图所示。
另一个测试是反过来测试的,方法差不多,这里就不熬述了。在不同dpi设置下面的打印效果如下图(左边的是dpi为96的打印效果,右边是dpi为120的打印效果,高度还是差很多的)
那么这个问题是windows系统导致的,应该算是windows跟excel的一个bug吧。但是甲方领导不依不饶一定要解决这个问题(公司公关没做到位,坑的都是我们程序猿啊~),刚开始我们使用的pdf来替代excel的办法作为解决方案,使用OpenOffice插件在服务器端把excel转为pdf然后导出,经过测试这个方案没有问题,结果上甲方的测试系统时,问题来了~,甲方的服务器是AIX。OpenOffice根本没有提供AIX的插件包。。。后来又想了另一种折中方案,就是OpenOffice安装在另一台Linux服务器上,AIX服务器上的系统去调用OpenOffice所在的这台机器,这样的方案也是可以实现,结果甲方又是担心出问题,不同意这个方案。最后还是我们领导想出了一个解决办法,就是在jsp页面用js调用ActiveXObject读取客户端的注册表,然后判断客户端是那种dpi,代码如下
var dpiVal=96;
try{var shell=new ActiveXObject("WScript.Shell");var reginfo="HKEY_CURRENT_USER\\Control Panel\\Desktop\\WindowMetrics\\AppliedDPI" dpiVal=shell.RegRead(reginfo);
}catch(e){dpiVal=96;
}
这样我们在服务端做了2个excel模板来满足不同dpi设置,这样的结果是只能在ie浏览器上使用,而且把站点加入受信任站点,然后自定义级别,设置如下
这样终于把问题解决了,甲方领导也同意这样的方案。
下面附上跟微软400客服沟通的记录,以及msdn微软工程师的回复
与微软客户400电话沟通记录
2014年10月10日星期五 17:15
致电4008203800。
微软回复:需要正版许可才能获得技术支持。
2014年10月11日星期六 10:48
致电4008203800。
提供正版序列号。
微软回复:需要企业服务协议号才能获得技术支持。
2014年10月13日星期一 14:07
致电4008203800。
提供企业服务协议号,说明所遇到的问题。
微软回复:超出免费服务范围,需要有偿服务才能获得技术支持。
======================================================================
微软excel论坛微软工程师Johns Wu的回复
您好,
DPI是每英寸象素数,DPI不同显示效果是有差别的,这也是正常情况。(打印尺寸越大DPI越低)
通常打印效果受像素、分辨率等有关。例如照片的DPI一般是固定的,比如大多数机器都设定为72,那么600万象素的照片长是3400象素,每英寸72象素,那么打印出来就是长47英寸,合119厘米,大约1.2米。这种情况通常不现实,所以要调高DPI值或者减小照片分辨率,以达到最佳尺寸。
“打印尺寸”与影像分辨率有莫大的关系,只要影像分辨率改变了,打印的尺寸便会跟着变化,而像素和影像分辨率又有直接的关系,所以三者可以互相转换的。而其中最根本的就是像素了。
=======================================================================
excel帮助文档关于excel列宽不同的解释
大多数打印机提供了比计算机屏幕 (96 dpi) 变得更高的分辨率 (300 或 600 点 / 英寸)。因此,不同打印输出呈现在屏幕上显示的信息。当选择一列或行,并使用自动调整命令时在屏幕使用该字体规格不同于打印机使用的该度量值 ; 某些字体的有些字符可能会使用小数的值。
例如对于一种字体可能会报告 9.1 的像素,但它无法处理小数部分的多显示器驱动程序是舍入为最接近的整像素值量。在此的示例 9.1 像素被舍入,向下为 9.0 像素为单位)。更高分辨率打印机呈现打印预览中的视图中,或当打印工作表时,将使用时, 字符可能会打印在 9.1 像素的分辨率。因为基于圆角的整数值计算列的宽度,打印的输出的列是宽度的不同于显示的列的宽度。使用自动调整命令来调整列中包含长文本字符串,这种差异时尤其明显。
同一个excel文件在不同电脑上打印高度不同的原因相关推荐
- 计算机 打印格式 不一样,同一个EXCEL表格在不同电脑打印出来的不一样,如何解决?:excel表格自动变形...
同一个EXCEL表格在不同电脑打印出来的不一样,如何解决? 这个我也遇 好像是office2003出现的这个问题 具体好像本的问题??? 单纯的叶面设置也解释不通吧? 很烦人的 一不小心就打了 打出来 ...
- Python+pandas分离Excel数据到同一个Excel文件中多个Worksheets
封面图片:<Python程序设计(第2版)>,董付国,清华大学出版社 =============== 问题描述: 已知文件"超市营业额2.xlsx"中结构与部分数据如图 ...
- wps表格里面计算机在哪里,“Excel表格软件在电脑上到哪里找?“电脑excle在哪里...
从电脑中哪儿找到Excel表格 首先电脑上要安装WPS或office等相关的办公,安装了可过如下操作打开. 一.安装办公软件软件,以WPS为例 1.搜索WPS,打开官网下载 2.点击想下载的版本下载, ...
- 上传文件计算机传输的,文件全能王怎么把文件传到电脑上 文件全能王文件上传到电脑教程...
文件全能王怎么把文件传到电脑上?文件全能王是一款手机上十分好用的管理工具,不仅仅支持文件的压缩和解压,还能够在多平台上进行文件的传输,对于还不是很了解如何使用文件全能王将文件传到电脑上的小伙伴们,下面 ...
- 【办公-excel】同一个Excel文件中同步自定义页眉页脚
一.问题描述 excel表格在打印设置里如何让自定义页眉永久保留 如何保存自定义的页眉页脚呢? 如何保存自定义的页眉页脚到默认的下拉框 Excel 页眉页脚的下拉菜单如果添加和删除? 比如现在下拉菜单 ...
- word在另外计算机格式不对,为什么word 2007文件在不同电脑上排版显示不同?应该如何解决?...
为什么word文件在不同电脑排版显示不同?最近打印论文,自己的笔记本是word2007,保存的通用格式,预览排版没有问题.去打印店打印时,发现插入的图片窜行了,幸亏即使调整过来,并且保存.但拿回自己的 ...
- 云服务器文件导入,将电脑上的文件导入云服务器
将电脑上的文件导入云服务器 内容精选 换一换 设置"云服务器名称".名称可自定义,但需符合命名规则:只能由中文字符.英文字母.数字及"_"."-&qu ...
- 如何向icloud上传文件_怎样用icloud把手机文件传到电脑上?
在苹果手机升级到ios11后,就可以用icloud把手机文件传到电脑上了,为此,首先在电脑上下载电脑版icloud并安装.安装完成之后,登陆你的苹果手机ID,然后点击"开始",把鼠 ...
- 【从AWS亚马逊平台上的s3存储桶上下载文件到win10电脑上】
从AWS亚马逊平台上的s3存储桶上下载文件到win10电脑上 1.在win10电脑上下载AWS CLI. 2.在cmd命令行输入 aws configure 出现四个要填写的信息. 3.配置好本机和a ...
最新文章
- linux mysql 开启远程访问
- 阿里p8呕心沥血整理出来的,APP UI自动化测试思路总结,速看
- spyder jupyter集成
- assert() (C++) 非常简单!
- php中如何让这段东西不显示出来,数据显示处理,该怎么处理
- 资源不关闭,会导致什么最坏的结果
- Html 中表单提交的一些知识总结——防止表单自动提交,以及submit和button提交表单的区别...
- 牛腩新闻发布系统-发布
- 6个工具让网页抓取变得轻而易举
- 2021电子设计竞赛题目_艾孜尔江
- 【PDN仿真笔记3-电容布局Q3D模型搭建】
- 【Transformer】李沐论文逐段精读学习笔记
- pgsql命令行直接输入密码登录
- Vivado软件的使用
- Geoserver 发布wmts服务,以及cesium加载发布的wmts服务
- 脑电EEG的几种蒙太奇
- 全国大中学生体测取消选测 长跑成为必测项目
- MyBatis:快速入门代码实例(maven代码版)
- CGAL 创建DTM(数字地形模型)
- 自动同步数据及数据变化到不同的Android进程, Synchro: Sync Manager for Android