在PB中使用OLEObject操作Excel

在PB中我们可以使用DataWindow的SaveAs方法把数据窗口中的数据保存成Excel的格式。

一般我们会用如下语句来保存Excel

dw_1.SaveAs( as_filename,Excel!, TRUE )

但是这个语句对于Excel2007的支持不是很好,用这个方法保存的文件打开时会有问题。

经过摸索与实验发现改成下面这种方法以后能有效的解决问题。


//获取文件的后缀名

is_fileskbn = RightA(as_filename,Len(as_filename) -POS(as_filename, "."))   

//xls的时候用EXCEL2003的形式保存        

IF is_fileskbn = "xls" THEN          

              dw_1.SaveAs(as_filename, Excel8!, TRUE )

END IF

//xlsx的时候用EXCEL2007的形式保存      

IF is_fileskbn = "xlsx" THEN        

              dw_1.SaveAs(as_filename, XLSX!, TRUE )

END IF


有时候数据窗口里的数据是有格式的比如日期,金额等。但是用上面的方法保存的文件格式可能会丢失,所以还需要再设置一下格式,

设置格式时可以用下面的语句来实现

Integer li_return
OleObject OleExcel
OleExcel = CREATE OLEObject
li_return = OleExcel.ConnectToNewObject("excel.application")
If li_return <> 0 Then
 Destroy OleExcel
 Return ZaFalse
End If
OleExcel.Application.DisplayAlerts = FALSE
OleExcel.Visible = FALSE
OleExcel.WorkBooks.OPEN(as_filename)
OleExcel.application.ActiveSheet.Cells.Select
OleExcel.Selection.Font.Name = "MS Pゴシック"
OleExcel.Selection.Font.Size = 11
OleExcel.Application.Columns("I:I").NumberFormat = 'yyyy/mm/dd HH:MM:SS'   // 设置日期格式
OleExcel.Application.Columns("I:I").HorizontalAlignment=2                // 设置左对齐
OleExcel.Application.Columns("J:J").NumberFormat = 'yyyy/mm/dd HH:MM:SS'   //设置日期格式 
OleExcel.Application.Columns("J:J").HorizontalAlignment=2         //设置左对齐
OleExcel.application.ActiveWorkbook.SaveAs(as_filename)
OleExcel.WorkBooks.close
OleExcel.Application.DisplayAlerts = TRUE
OleExcel.Visible = TRUE
destroy OleExcel



“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页
评论

打赏作者

王飞雁

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值