标题:同样的两个excel表格为何打印预览效果不一样
只看楼主
wlsesh
Rank: 1
等 级:新手上路
帖 子:1
专家分:1
注 册:2016-10-6
得分:1 
这个不好说.源文件贴上来
2016-10-06 09:05
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
得分:1 
楼主看过页边距的设置吗?
2016-10-07 08:57
sharamjam
Rank: 2
来 自:UK
等 级:论坛游民
帖 子:81
专家分:59
注 册:2014-9-19
得分:1 
用代码设置打印区域到19列

我是VFP菜鸟……
但是用VFP实现一个个小应用,还是很有成就感的
2016-10-07 12:43
Director_lbw
Rank: 2
来 自:河南安阳
等 级:论坛游民
威 望:1
帖 子:27
专家分:37
注 册:2015-1-6
得分:0 
不好意思,国庆长假没有及时回大家的话,在这里向大家道歉了。现在把原文件粘上来,望大家指导。
result.rar (21.16 KB)

下面为我的代码,运行之后可以看到效果。

程序代码:
oExcel=Createobject("excel.application")
oExcel.Workbooks.Add
With oExcel.ActiveSheet.PageSetup
    .LeftHeader = ""&&左页眉
    .CenterHeader = ""&&中页眉
    .RightHeader = ""&&右页眉
    .LeftFooter = ""&&左页脚
    .CenterFooter = ""&&中页脚
    .RightFooter = ""&&右页脚
    .Orientation=2 &&1竖排,2横排
    .HeaderMargin=7.35&&页眉到顶端的距离(2厘米)
    .FooterMargin=7.35&&页脚到底端的距离(3厘米)
    .TopMargin=25.75&&顶边距为2厘米
    .BottomMargin=25.75&&底边距为4厘米
    .LeftMargin=22.1&&左边距为2厘米2/0.0.35
    .RightMargin=22.1&&右边距为2厘米2/0.035
    .CenterHorizontally=.T.&&页面水平居中
    .CenterVertically=.T.&&页面垂直居中
    .PrintGridlines=.F.&&打印单元格网线
    .Zoom=100 &&缩放100%
Endwith
*********设置所列宽************
With oExcel.ActiveSheet
    .Columns.WrapText=.T.
    .Columns(1).ColumnWidth=5.88
    .Columns(2).ColumnWidth=8.00
    .Columns(3).ColumnWidth=10.13
    .Columns(4).ColumnWidth=10.13
    .Columns(5).ColumnWidth=5.38
    .Columns(6).ColumnWidth=2.50
    .Columns(7).ColumnWidth=2.50
    .Columns(8).ColumnWidth=2.50
    .Columns(9).ColumnWidth=16.75
    .Columns(10).ColumnWidth=7.25
    .Columns(11).ColumnWidth=8.13
    .Columns(12).ColumnWidth=4.13
    .Columns(13).ColumnWidth=4.13
    .Columns(14).ColumnWidth=4.13
    .Columns(15).ColumnWidth=5.50
    .Columns(16).ColumnWidth=5.38
    .Columns(17).ColumnWidth=13.38
    .Columns(18).ColumnWidth=8.38
    .Columns(19).ColumnWidth=6.00
    ************设置所字体格式****************
    .cells.NumberFormatLocal = "@"&&设置格式为文本
    .cells.Font.Size=11&&所有字体设为11
    .cells.Font.FontStyle = "常规"
    .cells.Font.Name="宋体"
    .cells.Rows.RowHeight=13.5&&所有行高为13.5
    .Columns(9).Font.Size=10&&身份证号码
    .Columns(12).Font.Size=8&&出生日期
    .Columns(13).Font.Size=10&&死亡日期
    .Columns(14).Font.Size=10&&火化日期
    .Columns(16).Font.Size=8&&联系电话
    .Columns(17).Font.Size=8&&家属身份证号码
    .Columns(18).Font.Size=10&&家属住址或单位
    ***********第一行字体属性*******************
    .Rows(1).RowHeight=32.2500000&&行高
    .cells(1,1).Value="数据测试中心"
    .cells(1,1).Font.Name="宋体"&&字体名称
    .cells(1,1).Font.Size=11&&字体大小
    .cells(1,1).Font.Italic=.F.&&字体是否为斜体
    .cells(1,1).Font.Bold=.T.&&是否为粗体
    .cells(1,1).Font.FontStyle = "常规"&&字体格式
    .cells(1,1).Font.underline=.F.&&字体是否有下划线
    .cells(1,1).Font.ColorIndex =1 &&字符颜色
    .Range("A1:s1").MergeCells=.T.&&合并单元格
    .cells(1,1).HorizontalAlignment =3 &&水平(1-默认、2-靠左、3-居中、4-靠右、5-填充、6=两端对齐、7=跨列居中、8=分散对齐)
    .cells(1,1).VerticalAlignment =2 &&垂直(1=靠上、2=居中、3=靠下、4=两端对齐、5=分散对齐)
    *********第二行字体格式**************
    .Rows(2).RowHeight=43
    .Range("A2:S2").HorizontalAlignment =3 &&水平(1-默认、2-靠左、3-居中、4-靠右、5-填充、6=两端对齐、7=跨列居中、8=分散对齐)
    .Range("A2:S2").VerticalAlignment =2 &&垂直(1=靠上、2=居中、3=靠下、4=两端对齐、5=分散对齐)
    .cells(2,1).Value="行政区划代码"
    .cells(2,2).Value="县(市)、区"
    .cells(2,3).Value="死亡证编号"
    .cells(2,4).Value="火化证编号"
    .cells(2,5).Value="死者姓名"
    .cells(2,6).Value="性别"
    .cells(2,7).Value="民族"
    .cells(2,8).Value="年龄"
    .cells(2,9).Value="身份证号码"
    .cells(2,10).Value="户口所在地派出所"
    .cells(2,11).Value="常住地址"
    .cells(2,12).Value="出生日期"
    .cells(2,13).Value="死亡日期"
    .cells(2,14).Value="火化日期"
    .cells(2,15).Value="家属姓名"
    .cells(2,16).Value="联系电话"
    .cells(2,17).Value="家属身份证号码"
    .cells(2,18).Value="家属住址或单位"
    .cells(2,19).Value="殡仪馆名称"

    *!* 设置四个边框线条的类型
    *oExcel.ActiveSheet.Columns(7).NumberFormatLocal = "yyyy-mm-dd" &&数据格式
    *oExcel.ActiveSheet.Range("b3:d3").BorderS(2).LineStyle=1
    *(其中Borders参数:1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineStyle值:1与7-细实、2-细虚、4-点虚、9-双细实线)
    *oExcel.ActiveSheet.Range("b3:d3").BorderS(2).LineStyle=1
    *(其中Borders参数:1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineStyle值:1与7-细实、2-细虚、4-点虚、9-双细实线)
    *oExcel.ActiveSheet.UsedRange.Columns.Count '有数据的总列数
    *oExcel.ActiveSheet.UsedRange.ROWS.Count '有数据的总行数
    *oExcel.Columns.AutoFit '让所有的列宽都自动调整
    ****************************打印页面设置***************
    *oExcel.ActiveSheet.PageSetup.PrintTitleRows="$1:$1" &&每页都打印行标头(每页顶部出现的单元格的行)
ENDWITH
oExcel.Application.Visible= .T.

只要行动,一切皆有可能
2016-10-08 08:23
沙枣
Rank: 4
来 自:宁夏银川
等 级:业余侠客
威 望:5
帖 子:103
专家分:221
注 册:2015-5-31
得分:1 
回复 14楼 Director_lbw
    这个问题我不象你那样处理,我是直接引用现成的EXCEl模板,用程序在各个单元格里填数据,做出来的表格绝对规整统一。
    VFP虽然能控制EXCEl表的格式,但控制的精度可能与EXCEL本身的设置方式有出入,所以,非属确需,不建议在VFP程序中设置EXCEL的字体、字号等参数,引用现成的EXCEL模板更方便,代码也更简捷。
2016-10-08 11:57
Director_lbw
Rank: 2
来 自:河南安阳
等 级:论坛游民
威 望:1
帖 子:27
专家分:37
注 册:2015-1-6
得分:0 
回复 15楼 沙枣
谢谢,我现在就是用模版解决此问题的。只是现在的这个问题想不明白为什么

只要行动,一切皆有可能
2016-10-08 14:06
西苏精神
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-5-12
得分:0 
其实两台电脑的屏幕显示比例不同,也会有影响。
2018-05-12 10:17
西苏精神
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-5-12
得分:0 
其实两台电脑的屏幕显示比例不同,也会有影响。
2018-05-12 10:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-469353-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041492 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved