| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 676 人关注过本帖, 1 人收藏
标题:请教:WPS另存为XLSX并打开
只看楼主 加入收藏
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:265
专家分:47
注 册:2019-3-8
结帖率:94.59%
收藏(1)
已结贴  问题点数:20 回复次数:10 
请教:WPS另存为XLSX并打开
一事一问,发个新贴。
我打开一个文件,这个文件可能是WPS的,也可能是EXCEL的。要判断一下,如果是WPS的,就另存为XLSX文件,并且打开这个XLSX文件。
下列代码有问题,出不来结果:
DECLARE long IsWindowVisible IN user32 long
Wps=Createobject("ket.application")
*Wps=getobject(,"ket.application")
wps.Visible = 1
DO WHILE IsWindowVisible(wps.hWnd)!= 0
*    M_File=wps.activesheet.name   &&获取文件名
    M_File=wps.Workbooks.name   &&获取文件名
    ?M_file
    Wps.Workbooks.SaveAs(&lj\usertable\M_File.xlsx)
    Wps.Workbooks.Open(&lj\usertable\M_File.xlsx)
ENDDO
请帮忙修改,谢谢!!
搜索更多相关主题的帖子: 文件 另存为 打开 long application 
2023-05-25 10:24
nbwww
Rank: 8Rank: 8
等 级:贵宾
威 望:11
帖 子:328
专家分:760
注 册:2021-1-9
收藏
得分:20 
1.创建et对象
Wps=Createobject("et.application")

2.添加新工作簿
Wps.Workbooks.Add

3.设置第1个工作表为激活工作表
Wps.Worksheets("sheet1").Activate

4.打开指定工作簿
Wps.Workbooks.Open("c:/book1.xls")

5.显示ET窗口
Wps.Visible=.T.

6.更改ET标题栏
Wps.Caption="VFP调用WPS"

7.给单元格赋值
Wps.cells(1,4).Value="第1行第4列"

8.设置指定列的宽度(单位:字符个数)
Wps.ActiveSheet.Columns(1).ColumnWidth=5

9.设置指定行的高度(单位:磅)
Wps.ActiveSheet.Rows(1).RowHeight=1 &&(设定行高为1磅,1磅=0.035厘米)
Wps.ActiveSheet.Rows("50:100").RowHeight=1 &&设置第50行至100行的高度

10.在第18行之前插入分页符
Wps.Worksheets("Sheet1").Rows(18).PageBreak=1

11.在第4列之前删除分页符
Wps.ActiveSheet.Columns(4).PageBreak=0

12.指定边框线宽度(Borders参数如下)
Wps.ActiveSheet.Range("b3:d3").BorderS(2).Weight=3

13.设置四个边框线条的类型
Wps.ActiveSheet.Range("b3:d3").BorderS(2).LineStyle=1
*(其中Borders参数:1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineStyle值:1与7-细实、2-细虚
、4-点虚、9-双细实线)

14.设置页眉
Wps.ActiveSheet.PageSetup.CenterHeader="报表1"

15.设置页眉(字体大小)
Wps.ActiveSheet.PageSetup.CenterHeader="&50报表1" &&'&'后面的50可以自定义,表示字体的大小

16.设置页脚
Wps.ActiveSheet.PageSetup.CenterFooter="第&P页"

17.设置页脚(字体大小)
Wps.ActiveSheet.PageSetup.CenterFooter="&28第&P页" &&'&'后面的28可以自定义,表示字体的大小

18.设置页眉到顶端边距为2厘米
Wps.ActiveSheet.PageSetup.HeaderMargin=2/0.035

19.设置页脚到底边距为3厘米
Wps.ActiveSheet.PageSetup.FooterMargin=3/0.035

20.设置顶边距为2厘米
Wps.ActiveSheet.PageSetup.TopMargin=2/0.035

21.设置底边距为4厘米
Wps.ActiveSheet.PageSetup.BottomMargin=4/0.035

22.设置左边距为2厘米
Wps.ActiveSheet.PageSetup.LeftMargin=2/0.035

23.设置右边距为2厘米
Wps.ActiveSheet.PageSetup.RightMargin=2/0.035

24.设置页面水平居中
Wps.ActiveSheet.PageSetup.CenterHorizontally=.T.

25.设置页面垂直居中
Wps.ActiveSheet.PageSetup.CenterVertically=.T.

26.设置页面纸张大小(1-窄行8?5?11 39-宽行14?11 9:A4)
Wps.ActiveSheet.PageSetup.Papersize=1

27.打印单元格网线
Wps.ActiveSheet.PageSetup.PrintGridlines=.T.

28.拷贝整个工作表
Wps.ActiveSheet.UsedRange.Copy

29.拷贝指定区域
Wps.ActiveSheet.Range("A1:E2").Copy

30.粘贴
Wps.WorkSheet("Sheet2").Range("A1").PasteSpecial

31.在第2行之前插入一行
Wps.ActiveSheet.Rows(2).Insert

32.在第2列之前插入一列
Wps.ActiveSheet.Columns(2).Insert

33.设置字体
Wps.ActiveSheet.Cells(2,1).Font.Name="黑体"

34.设置字体大小
Wps.ActiveSheet.Cells(1,1).Font.Size=25

35.设置字体为斜体
Wps.ActiveSheet.Cells(1,1).Font.Italic=.T.

36.设置整列字体为粗体
Wps.ActiveSheet.Columns(1).Font.Bold=.T.

37.清除单元格公式
Wps.ActiveSheet.Cells(1,4).ClearContents

38.打印预览工作表
Wps.ActiveSheet.PrintPreview

39.打印输出工作表
Wps.ActiveSheet.PrintOut

40.工作表另存为
Wps.ActiveWorkbook.SaveAs("c:/temp/test2.xls")

41.放弃存盘 && 避免出现保存对话框
Wps.ActiveWorkbook.saved=.T.

42.存盘
Wps.ActiveWorkbook.Save

43.关闭工作簿
Wps.Workbooks.Close

44.退出WPS ET
Wps.Quit
2023-05-25 11:37
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:265
专家分:47
注 册:2019-3-8
收藏
得分:0 
谢谢!
2023-05-25 17:34
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:265
专家分:47
注 册:2019-3-8
收藏
得分:0 
基本完成了。成功另存为了XLSX文件,但这个文件只可以用WPS手动打开,
Wps.Workbooks.Open("&lj\usertable\&M_File..xlsx") 打不开。excel手动或代码都打不开。
图片附件: 游客没有浏览图片的权限,请 登录注册

不知是何原因?
2023-05-25 17:55
my2318
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:14
帖 子:256
专家分:637
注 册:2014-3-18
收藏
得分:0 
版本问题吗?
2023-05-25 18:36
nbwww
Rank: 8Rank: 8
等 级:贵宾
威 望:11
帖 子:328
专家分:760
注 册:2021-1-9
收藏
得分:0 
wps.Workbooks(1).SaveAs("c:\test3.xlsx",51)
2023-05-25 19:43
nbwww
Rank: 8Rank: 8
等 级:贵宾
威 望:11
帖 子:328
专家分:760
注 册:2021-1-9
收藏
得分:0 
XlFileFormat 枚举 (Excel)

指定保存工作表时的文件格式。

名称       说明    扩展名
xlAddIn    18    Microsoft Excel 97-2003 外接程序    *.xla
xlAddIn8    18    Microsoft Excel 97-2003 外接程序    *.xla
xlCSV    6    CSV    *.csv
xlCSVMac    22    Macintosh CSV    *.csv
xlCSVMSDOS    24    MSDOS CSV    *.csv
xlCSVUTF8    62    UTF8 CSV    *.csv
xlCSVWindows    23    Windows CSV    *.csv
xlCurrentPlatformText    -4158    当前平台文本    *.txt
xlDBF2    7    Dbase 2 格式    *.dbf
xlDBF3    8    Dbase 3 格式    *.dbf
xlDBF4    11    Dbase 4 格式    *.dbf
xlDIF    9    数据交换格式    *.dif
xlExcel12    50    Excel 二进制工作簿    *.xlsb
xlExcel2    16    Excel 版本 2.0 (1987)    *.xls
xlExcel2FarEast    27    Excel 版本 2.0 中文 (1987)    *.xls
xlExcel3    29    Excel 版本 3.0 (1990)    *.xls
xlExcel4    33    Excel 版本 4.0 (1992)    *.xls
xlExcel4Workbook    35    Excel 版本 4.0 工作簿格式 (1992)    *.xlw
xlExcel5    39    Excel 版本 5.0 (1994)    *.xls
xlExcel7    39    Excel 95(版本 7.0)    *.xls
xlExcel8    56    Excel 97-2003 工作簿    *.xls
xlExcel9795    43    Excel 版本 95 和 97    *.xls
xlHtml    44    HTML 格式    .htm;.html
xlIntlAddIn    26    国际外接程序    无文件扩展名
xlIntlMacro    25    国际宏    无文件扩展名
xlOpenDocumentSpreadsheet    60    OpenDocument 电子表格    *.ods
xlOpenXMLAddIn    55    Open XML 外接程序    *.xlam
xlOpenXMLStrictWorkbook    61 (&H3D)    Strict Open XML 文件    *.xlsx
xlOpenXMLTemplate    54    Open XML 模板    *.xltx
xlOpenXMLTemplateMacroEnabled    53    启用 Open XML 模板宏    *.xltm
xlOpenXMLWorkbook    51    Open XML 工作簿    *.xlsx
xlOpenXMLWorkbookMacroEnabled    52    启用 Open XML 工作簿宏    *.xlsm
xlSYLK    2    符号链接格式    *.slk
xlTemplate    17    Excel 模板格式    *.xlt
xlTemplate8    17    模板 8    *.xlt
xlTextMac    19    Macintosh 文本    *.txt
xlTextMSDOS    21    MSDOS 文本    *.txt
xlTextPrinter    36    打印机文本    *.prn
xlTextWindows    20    Windows 文本    *.txt
xlUnicodeText    42    Unicode 文本    无文件扩展名;*.txt
xlWebArchive    45    Web 档案    .mh;.mhtml
xlWJ2WD1    14    日语 1-2-3    *.wj2
xlWJ3    40    日语 1-2-3    *.wj3
xlWJ3FJ3    41    日语 1-2-3 格式    *.wj3
xlWK1    5    Lotus 1-2-3 格式    *.wk1
xlWK1ALL    31    Lotus 1-2-3 格式    *.wk1
xlWK1FMT    30    Lotus 1-2-3 格式    *.wk1
xlWK3    15    Lotus 1-2-3 格式    *.wk3
xlWK3FM3    32    Lotus 1-2-3 格式    *.wk3
xlWK4    38    Lotus 1-2-3 格式    *.wk4
xlWKS    4    Lotus 1-2-3 格式    *.wks
xlWorkbookDefault    51    默认工作簿    *.xlsx
xlWorkbookNormal    -4143    常规工作簿    *.xls
xlWorks2FarEast    28    Microsoft Works 2.0 两端对齐格式    *.wks
xlWQ1    34    Quattro Pro 格式    *.wq1
xlXMLSpreadsheet    46    XML 电子表格    *.xml
2023-05-25 19:45
nbwww
Rank: 8Rank: 8
等 级:贵宾
威 望:11
帖 子:328
专家分:760
注 册:2021-1-9
收藏
得分:0 
SaveAs(FileName,FileFormat,Password,WriteResPassword,ReadOnlyRecommended,CreateBackup,AccessMode,ConflictResolution,AddToMru,TextCodepage,TextVisualLayout,Local)

前面几个主要参数ThisWorkbook.SaveAs
'filename(文件名) ,fileformat(文件格式),password(密码)

第一个参数为文件名称:可以为全路径名;也可以不含路径的名称,如果不包含路径,默认会保存在原文件所在文件夹

第二个参数为文件格式:常用格式设置51即可,具体可看微软帮助 XlFileFormat 枚举 (Excel)

第三个参数为设置打开密码

'前三个参数比较关键,其它可以不填,如果全不填就等效于 .save
2023-05-25 19:46
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:265
专家分:47
注 册:2019-3-8
收藏
得分:0 
谢谢nbww!我再试试。
2023-05-25 20:31
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:265
专家分:47
注 册:2019-3-8
收藏
得分:0 
终于完成了!不管收到的是.XLSX还是.ET,都可以了。
代码如下:
Try
     oExcel = getobject(,"excel.application")
     M_File=oExcel.activeworkbook.name   &&获取文件名
Catch
    Try
       oExcel=getobject(,"ket.application")
       M_File=oExcel.activeworkbook.name   &&获取文件名:qqq.et
       M_File=substr(M_file,1,LEN(M_file)-3)
       oExcel.DisplayAlerts = .F.
       oExcel.activeWorkbook.SaveAs("&lj\usertable\&M_File..xlsx",51)
       oExcel.DisplayAlerts = .T.
       oExcel.Workbooks.Open("&lj\usertable\&M_File..xlsx")
    CATCH
        =MESSAGEBOX("请打开一个信息采集表!",0+48,"提醒!")
        CANCEL
    ENDTRY
EndTry

谢谢大家,特别是nbww!!
2023-05-25 21:49
快速回复:请教:WPS另存为XLSX并打开
数据加载中...
 
   



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

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