PB操作Excel详解文档格式.docx

上传人:b****5 文档编号:19371327 上传时间:2023-01-05 格式:DOCX 页数:18 大小:23.21KB
下载 相关 举报
PB操作Excel详解文档格式.docx_第1页
第1页 / 共18页
PB操作Excel详解文档格式.docx_第2页
第2页 / 共18页
PB操作Excel详解文档格式.docx_第3页
第3页 / 共18页
PB操作Excel详解文档格式.docx_第4页
第4页 / 共18页
PB操作Excel详解文档格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

PB操作Excel详解文档格式.docx

《PB操作Excel详解文档格式.docx》由会员分享,可在线阅读,更多相关《PB操作Excel详解文档格式.docx(18页珍藏版)》请在冰豆网上搜索。

PB操作Excel详解文档格式.docx

d3″).Borders

(2).Weight=3

  13.设置四个边框线条的类型

  eole.ActiveSheet.Range(″b3:

d3″).Borders

(2).LineStyle=1

  (其中Borders参数:

1-左、2-右、3-顶、4-底、5-斜、6-斜/;

LineStyle值:

1与7-细实、2-细虚、4-点虚、9-双细实线)

  14.设置页眉

  eole.ActiveSheet.PageSetup.CenterHeader=″报表1″

  15.设置页脚

  eole.ActiveSheet.PageSetup.CenterFooter=″第&P页″

  16.设置页眉到顶端边距为2厘米

  eole.ActiveSheet.PageSetup.HeaderMargin=2/0.035

  17.设置页脚到底边距为3厘米

  eole.ActiveSheet.PageSetup.FooterMargin=3/0.035

  18.设置顶边距为2厘米

  eole.ActiveSheet.PageSetup.TopMargin=2/0.035

  19.设置底边距为4厘米

  eole.ActiveSheet.PageSetup.BottomMargin=4/0.035

  20.设置左边距为2厘米

  veole.ActiveSheet.PageSetup.LeftMargin=2/0.035

  21.设置右边距为2厘米

  eole.ActiveSheet.PageSetup.RightMargin=2/0.035

  22.设置页面水平居中

  eole.ActiveSheet.PageSetup.CenterHorizontally=.t.

  23.设置页面垂直居中

  eole.ActiveSheet.PageSetup.CenterVertically=.t.

  24.设置页面纸张大小(1-窄行851139-宽行1411)

  eole.ActiveSheet.PageSetup.PaperSize=1

  25.打印单元格网线

  eole.ActiveSheet.PageSetup.PrintGridlines=.t.

  26.拷贝整个工作表

  eole.ActiveSheet.UsedRange.Copy

  27.拷贝指定区域

  eole.ActiveSheet.Range(″A1:

E2″).Copy

  28.粘贴

  eole.WorkSheet(″Sheet2″).Range(″A1″).PasteSpecial

  29.在第2行之前插入一行

  eole.ActiveSheet.Rows

(2).Insert

  30.在第2列之前插入一列

  eole.ActiveSheet.Columns

(2).Insert

  31.设置字体

  eole.ActiveSheet.Cells(2,1).Font.Name=″黑体″

  32.设置字体大小

  eole.ActiveSheet.Cells(1,1).Font.Size=25

  33.设置字体为斜体

  eole.ActiveSheet.Cells(1,1).Font.Italic=.t.

  34.设置整列字体为粗体

  eole.ActiveSheet.Columns

(1).Font.Bold=.t.

  35.清除单元格公式

  eole.ActiveSheet.Cells(1,4).ClearContents

  36.打印预览工作表

  eole.ActiveSheet.PrintPreview

  37.打印输出工作表

  eole.ActiveSheet.PrintOut

  38.工作表另为

  eole.ActiveWorkbook.SaveAs(″c:

\temp\22.xls″)

  39.放弃存盘

  eole.ActiveWorkbook.saved=.t.

  40.关闭工作簿

  eole.Workbooks.close

  41.退出Excel

  eole.quit

先把标题放到剪贴板上,再PASTE()到EXCEL中,代码如下:

:

:

clipboard(ls_value)

ao_object.range(ls_col+string

(1)+"

"

+ls_col+string

(1)).select()

ao_object.activesheet.Paste()

/*************************************************************

下面的函数f_excel_hb,可以实现“将工作簿filename_s中的工作表sheetname_s以新的工作表名称sheetname_t,复制到工作簿filename_t的最后”

1.public 

function 

boolean 

f_excel_hb 

(string 

filename_s, 

string 

filename_t, 

sheetname_s, 

sheetname_t);

 

2.//========================================================== 

3.// 

合并两个工作簿中的某个工作表 

4.//========================================================== 

5.// 

作者:

yyoinge 

2011-10-12 

18:

00 

6.//========================================================== 

7.// 

将工作簿filename_s中的工作表sheetname_s以新的 

8.// 

工作表名称sheetname_t,复制到工作簿filename_t的最后 

9.//========================================================== 

10.if 

not 

fileexists(filename_s) 

then 

11. 

messagebox('

'

'

工作簿【'

filename_s 

(源)不存在'

) 

12. 

return 

false 

13.end 

if 

14.if 

fileexists(filename_t) 

15. 

filename_t 

(目标)不存在'

16. 

17.end 

18.long 

ll_val 

19.//声明ole对象 

20.oleobject 

ole_object_s 

21.//创建ole对象 

22.ole_object_s=create 

oleobject 

23.//连接到excel 

24.ll_val 

ole_object_s.connecttonewobject("

excel.application"

25.if 

<

>

26. 

ole无法连接Excel!

27. 

goto 

error 

28.end 

29.//打开源和目标工作簿 

30.ole_object_s.workbooks.open(filename_s) 

31.ole_object_s.workbooks.open(filename_t) 

32.string 

ls_t 

33.ls_t 

34.filename_s 

of_splitpath(filename_s, 

2) 

35.filename_t 

of_splitpath(filename_t, 

36.//隐藏excel 

37.ole_object_s.visible 

38.ole_object_s.displayalerts 

39.int 

n,t 

40.int 

li 

41.boolean 

isexists=false 

42.oleobject 

lworksheet 

43.//判断源工作簿中的工作表是否存在 

44.try 

45. 

ole_object_s.Workbooks(filename_s).sheets(sheetname_s) 

46. 

isexists 

true 

47.catch( 

oleruntimeerror 

er) 

48. 

49.end 

try 

50.if 

51. 

】中工作表不存在工作表['

sheetname_s 

]'

52. 

53.end 

54.//当目标工作簿中存在sheet名为sheetname_t的工作表时,为sheetname_t增加后缀

(1),然后再重复进行判断,直到表名不存在 

55.isexists 

56.do 

while 

57. 

58. 

ole_object_s.Workbooks(filename_t).sheets(sheetname_t) 

59. 

60. 

sheetname_t 

+= 

(1)'

61. 

catch( 

er1) 

62. 

63. 

end 

64.loop 

65.//进行工作表合并(移到目标工作簿的最后) 

66.//int 

67.setnull(li) 

68.ole_object_s.workbooks(filename_s).Sheets(sheetname_s).copy(li, 

ole_object_s.workbooks(filename_t).Sheets(long(ole_object_s.workbooks(filename_t).Sheets.count))) 

69.//重命名工作表 

70.ole_object_s.workbooks(filename_t).sheets(long(ole_object_s.workbooks(filename_t).Sheets.count)).name 

71.//保存目标工作簿 

72.isexists 

73.//ole_object_s.visible 

74.//ole_object_s.displayalerts 

75.//messagebox('

 

76.try 

77. 

ole_object_s.workbooks(filename_t).save() 

78.catch( 

er2) 

79. 

提示'

无法保存工作簿【'

】'

80. 

81.end 

82.if 

83.//关闭工作簿 

84.ole_object_s.workbooks(filename_s).close 

85.ole_object_s.workbooks(filename_t).close 

86.//退出excel 

87.ole_object_s.workbooks.close 

88.ole_object_s.Application.quit();

89.//断开连接 

90.ole_object_s.disconnectobject();

91.//注销ole对象 

92.destroy 

ole_object_s;

93.return 

94.error:

95.ole_object_s.workbooks(filename_s).close 

96.ole_object_s.workbooks(filename_t).close 

97.ole_object_s.workbooks.close 

98.ole_object_s.Application.quit();

99.ole_object_s.disconnectobject();

100.destroy 

101.return 

102. 

103. 

104.end 

/**********************************************************/

/*函数名称:

uf_dwsaveas_excel

功能:

将数据窗口数据导出EXCEL文件,并将EXCEL文件默认英文标题替换成中文。

参数:

datawindowdatawin,为用户要导出数据窗口的数据窗口控件名

返回值:

integer1,success;

-1,error

流程描述:

(原程序)先用saveas()倒出为excel文件,再替换表头为中文名

(新程序)直接用saveasAscii()倒出为excel文件

原因:

为提高程序的可读性作了少量的修改(如:

增加注释、改变排版风格等)

*/

/***************以下程序将导出为EXCEL文档******************/

integerli_rtn,ii,li_asc

stringls_name,ls_pathname

booleanlb_exist

ifdatawin.RowCount()<

1then

MessageBox("

提示信息"

"

请先检索数据再导出至Excel!

return-1//error

endif

li_rtn=GetFileSaveName("

保存文件"

ls_pathname,ls_name,"

xls"

Excel文件(*.xls),*.xls"

ifli_rtn=1then

lb_exist=FileExists(ls_pathname)

IFlb_existTHEN

li_rtn=MessageBox("

保存"

ls_pathname+"

已经存在,是否覆盖?

Exclamation!

YesNo!

//当文件存在用户选择覆盖,或是文件本就不存在时。

注意变量li_rtn

li_rtn=datawin.SaveAsAscii(ls_pathname)

导出数据成功!

return1

else

错误信息"

导出数据失败!

return-1

//在程序中调式没有问题,可以把数据窗口原样的输出,包括中英文,如果你用这个函数导出来的

也是乱码的话,可能是你的操作系统有问题了

函数SaveAsAscii()用法:

()函数。

它允许输出数据窗口的可视部分为文本格式,组、交叉报表、计算域等被保存为输出数据的一部分。

在很多的情况下,我们需要将书局窗口中的数据保存为其他应用程序的格式(比如:

MSExcel,Word,email等).为此Powerbuilder提供了SaveAs函数,然而使SaveAs保存数据窗口为Execl格式时有一些缺点,就是它无法保存我们所见到的格式,一些图形、交叉报表、计算域等等都被丢弃,它仅仅保存了数据窗口buffer中的数据。

为了输出交叉报表、组、和计算域等等可视的数据,PowerBuilder6.5(afterbuild444)提供了新的函数解决这些缺陷,它是:

SaveAsAscii()函数。

下面讨论该函数:

  描述:

将数据窗口或数据存储中的内容保存为ASCII文本文件

  适用于:

数据窗口和DataStore对象

  符号:

  dwcontrol.SaveAsAscii(filename{,separatorcharacter{,quotecharacter{,lineending}}})

  其中:

dwcontrol位数据窗口或DataStore的名字

filename:

要保存的文件名;

separatorcharacter(optional):

分割各个数据的字符串,缺省为tab

quotecharacter(optional):

包围值的字符串,缺省为空;

lineending(optional):

放在每行末尾的字符串,缺省为回车character(~r~n)

  下面的例子显示将数据窗口中的数据保存到文件monthly.txt,每个数据以'

|'

分割

dw_4.saveasascii("

monthly.txt"

|"

  在数据之间使用分割符是比较好的注意,因为缺省的tab字符可能会在导入excel时出问题。

在导入Excel时他会提示您,您数据中使用何种分割符。

  为了导入到Excel,只需在中Excel打开文件,您可能会看到一个wizard窗口定义正确的分割符即可。

下例显示一个用saveasascii()函数导出的文件,使用SaveAs函数时是不可能有如此结果的。

PB的dw导出到excel文件(使用saveasascii)

PB编程收集2007-07-1711:

01:

29阅读264评论0 

字号:

大中小 

订阅

PB的dw导出到excel文件(使用saveasascii)

/**********************************************************/

/*函数名称:

uf_dwsaveas_excel

功能:

参数:

datawindowdatawin,为用户要导出数据窗口的数据窗口控件名

返回值:

-1,error

流程描述:

先用saveasAscii()倒出为excel文件,再替换表头为中文名

设计人:

yanhui2003年11月

修改人:

叶文林2004.4.8

增加注释、改变排版风格等)*/

/***************以下程序将导出为EXCEL文档****

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 商业计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1