WPS开发文档
WPS官网的WPS开放平台开发文档,摘抄一些以记录及作为文档的入口记录,以后对WPS表格的操作编程再也不是从网上搜索到的只字片语了^_^。
Workbook.SaveAs
在另一不同文件中保存对工作簿所做的更改。
语法
express.SaveAs(Filename, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodepage, TextVisualLayout, Local)
express 一个代表 Workbook 对象的变量。
参数
名称 | 必选/可选 | 数据类型 | 说明 |
---|---|---|---|
Filename | 可选 | Variant | 一个表示要保存文件的文件名的字符串。可包含完整路径,如果不指定路径,ET 将文件保存到当前文件夹中。 |
FileFormat | 可选 | Variant | 保存文件时使用的文件格式。要查看有效的选项列表,请参阅 XlFileFormat 枚举。对于现有文件,默认采用上一次指定的文件格式;对于新文件,默认采用当前所用 ET 版本的格式。 |
Password | 可选 | Variant | 它是一个区分大小写的字符串(最长不超过 15 个字符),用于指定文件的保护密码。 |
WriteResPassword | 可选 | Variant | 一个表示文件写保护密码的字符串。如果文件保存时带有密码,但打开文件时不输入密码,则该文件以只读方式打开。 |
ReadOnlyRecommended | 可选 | Variant | 如果为 True,则在打开文件时显示一条消息,提示该文件以只读方式打开。 |
CreateBackup | 可选 | Variant | 如果为 True,则创建备份文件。 |
AccessMode | 可选 | XlSaveAsAccessMode | 工作簿的访问模式。 |
ConflictResolution | 可选 | XlSaveConflictResolution | 一个 XlSaveConflictResolution 值,它确定该方法在保存工作簿时如何解决冲突。如果设为 xlUserResolution,则显示冲突解决对话框。如果设为 xlLocalSessionChanges,则自动接受本地用户的更改。如果设为 xlOtherSessionChanges,则自动接受来自其他会话的更改(而不是本地用户的更改)。如果省略此参数,则显示冲突处理对话框。 |
AddToMru | 可选 | Variant | 如果为 True,则将该工作簿添加到最近使用的文件列表中。默认值为 False。 |
TextCodepage | 可选 | Variant | ET中对于所有语言都忽略此参数。 注释:当 ET 将工作簿保存为某种 CSV 或文本格式(使用 FileFormat 参数指定)时, ET 使用对应于当前计算机上使用的系统区域设置语言的代码页。在“控制面板”中单击“区域和语言”,再单击“位置”选项卡,在“当前位置”下可获得此系统设置。 |
TextVisualLayout | 可选 | Variant | ET中对于所有语言都忽略此参数。 注释:当 ET 将工作簿保存为某种 CSV 或文本格式(使用 FileFormat 参数指定)时,它按逻辑布局保存这些格式。如果文件中左至右 (LTR) 文本嵌在右至左 (RTL) 文本中,或者相反,那么逻辑布局将把文件的内容,按照文件中所有语言的正确阅读顺序保存,而不考虑方向。当应用程序打开文件时,每串 LTR 或 RTL 字符将根据代码页中的字符值范围,按照正确的方向呈现。(除非用来打开文件的应用程序是为显示文件的确切内存布局而设计的应用程序,如调试器或编辑器)。 |
Local | 可选 | Variant | 如果为 True,则以 ET(包括控制面板设置)的语言保存文件。如果为 False(默认值),则以 示例代码 (VBA) 的语言保存文件。VBA 通常为美国英语版本,除非从中运行 Workbooks.Open 的 VBA 项目是旧的国际化 XL5/95 VBA 项目。 |
XlFileFormat 枚举
指定保存工作表时的文件格式。
名称 | 值 | 说明 |
---|---|---|
xlAddIn | 18 | ET 2007 加载项 |
xlAddIn8 | 18 | ET 97-2003 加载项 |
xlCSV | 6 | CSV |
xlCSVMac | 22 | Macintosh CSV |
xlCSVMSDOS | 24 | MSDOS CSV |
xlCSVWindows | 23 | Windows CSV |
xlCurrentPlatformText | -4158 | 当前平台文本 |
xlDBF2 | 7 | DBF2 |
xlDBF3 | 8 | DBF3 |
xlDBF4 | 11 | DBF4 |
xlDIF | 9 | DIF |
xlExcel12 | 50 | ET 12 |
xlExcel2 | 16 | ET 2 |
xlExcel2FarEast | 27 | Excel2 FarEast |
xlExcel3 | 29 | Excel3 |
xlExcel4 | 33 | Excel4 |
xlExcel4Workbook | 35 | Excel4 工作簿 |
xlExcel5 | 39 | Excel5 |
xlExcel7 | 39 | Excel7 |
xlExcel8 | 56 | Excel8 |
xlExcel9795 | 43 | Excel9795 |
xlHtml | 44 | HTML 格式 |
xlIntlAddIn | 26 | 国际加载项 |
xlIntlMacro | 25 | 国际宏 |
xlOpenDocumentSpreadsheet | 60 | OpenDocument 电子表格 |
xlOpenXMLAddIn | 55 | 打开 XML 加载项 |
xlOpenXMLTemplate | 54 | 打开 XML 模板 |
xlOpenXMLTemplateMacroEnabled | 53 | 打开启用的 XML 模板宏 |
xlOpenXMLWorkbook | 51 | 打开 XML 工作簿 |
xlOpenXMLWorkbookMacroEnabled | 52 | 打开启用的 XML 工作簿宏 |
xlSYLK | 2 | SYLK |
xlTemplate | 17 | 模板 |
xlTemplate8 | 17 | 模板 8 |
xlTextMac | 19 | Macintosh 文本 |
xlTextMSDOS | 21 | MSDOS 文本 |
xlTextPrinter | 36 | 打印机文本 |
xlTextWindows | 20 | Windows 文本 |
xlUnicodeText | 42 | Unicode 文本 |
xlWebArchive | 45 | Web 档案 |
xlWJ2WD1 | 14 | WJ2WD1 |
xlWJ3 | 40 | WJ3 |
xlWJ3FJ3 | 41 | WJ3FJ3 |
xlWK1 | 5 | WK1 |
xlWK1ALL | 31 | WK1ALL |
xlWK1FMT | 30 | WK1FMT |
xlWK3 | 15 | WK3 |
xlWK3FM3 | 32 | WK3FM3 |
xlWK4 | 38 | WK4 |
xlWKS | 4 | 工作表 |
xlWorkbookDefault | 51 | 默认工作簿 |
xlWorkbookNormal | -4143 | 常规工作簿 |
xlWorks2FarEast | 28 | Works2 FarEast |
xlWQ1 | 34 | WQ1 |
xlXMLSpreadsheet | 46 | XML 电子表格 |
102 | 102 | ofd |
103 | 103 | |
65521 | 65521 | et |
65522 | 65522 | ett |
65523 | 65523 | uof |
65525 | 65525 | uos |
Column.AutoFit
改变表格列宽,使之在单元格文本换行方式不变的情况下,适应文本宽度。
语法
express.AutoFit()
express 一个代表 Column 对象的变量。
说明
如果表格的宽度已等于从左边界到右边界的距离,则此方法无效。
示例
示例代码复制 |
---|
|
示例代码复制 |
---|
|
我有个表格,列数比较多,行数比较少,我想自动调整到一页打印,便要知道分页所在的列,于是上百度搜索(搜索:vb.net 获取WPS表格分页列),人工智能给出了下面代码,还未测试是否可行。
Imports Microsoft.Office.Interop.Excel
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim excelApp As New Application()
Dim workbook As Workbook = excelApp.Workbooks.Open("C:\path\to\your\file.xlsx")
Dim worksheet As Worksheet = workbook.Sheets("Sheet1") ' 替换为你的工作表名称
Dim pageSetup As PageSetup = worksheet.PageSetup
Dim pageColumns As Range = pageSetup.PrintArea
' 输出分页列的范围
Console.WriteLine("分页列的范围:")
Console.WriteLine(pageColumns.Address)
workbook.Close()
excelApp.Quit()
End Sub
End Class
上面的应该是获得全部打印区域的范围,再结合人工智能(搜索:vb.net 获取WPS表格分页)给出一个获得所有页的代码,应该就差不多能实现了。
Imports System
Imports System.Runtime.InteropServices
Public Class Program
Public Shared Sub Main()
Dim wpsApp As Object = CreateObject("KWPS.Application")
Dim wpsDoc As Object = wpsApp.ActiveDocument
Dim wpsSheet As Object = wpsDoc.ActiveSheet
Dim pageCount As Integer = wpsSheet.PageSetup.Pages.Count
Console.WriteLine("WPS表格的分页数量为:" & pageCount)
' 释放COM对象
Marshal.ReleaseComObject(wpsSheet)
Marshal.ReleaseComObject(wpsDoc)
Marshal.ReleaseComObject(wpsApp)
End Sub
End Class