WPS开发文档

WPS官网的WPS开放平台开发文档,摘抄一些以记录及作为文档的入口记录,以后对WPS表格的操作编程再也不是从网上搜索到的只字片语了^_^。

Workbook.SaveAs

在另一不同文件中保存对工作簿所做的更改。

语法

express.SaveAs(FilenameFileFormatPasswordWriteResPasswordReadOnlyRecommendedCreateBackupAccessModeConflictResolutionAddToMruTextCodepageTextVisualLayoutLocal)

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可选VariantET中对于所有语言都忽略此参数。 注释:当 ET 将工作簿保存为某种 CSV 或文本格式(使用 FileFormat 参数指定)时, ET 使用对应于当前计算机上使用的系统区域设置语言的代码页。在“控制面板”中单击“区域和语言”,再单击“位置”选项卡,在“当前位置”下可获得此系统设置。
TextVisualLayout可选VariantET中对于所有语言都忽略此参数。 注释:当 ET 将工作簿保存为某种 CSV 或文本格式(使用 FileFormat 参数指定)时,它按逻辑布局保存这些格式。如果文件中左至右 (LTR) 文本嵌在右至左 (RTL) 文本中,或者相反,那么逻辑布局将把文件的内容,按照文件中所有语言的正确阅读顺序保存,而不考虑方向。当应用程序打开文件时,每串 LTR 或 RTL 字符将根据代码页中的字符值范围,按照正确的方向呈现。(除非用来打开文件的应用程序是为显示文件的确切内存布局而设计的应用程序,如调试器或编辑器)。
Local可选Variant如果为 True,则以 ET(包括控制面板设置)的语言保存文件。如果为 False(默认值),则以 示例代码 (VBA) 的语言保存文件。VBA 通常为美国英语版本,除非从中运行 Workbooks.Open 的 VBA 项目是旧的国际化 XL5/95 VBA 项目。

XlFileFormat 枚举


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

名称说明
xlAddIn18ET 2007 加载项
xlAddIn818ET 97-2003 加载项
xlCSV6CSV
xlCSVMac22Macintosh CSV
xlCSVMSDOS24MSDOS CSV
xlCSVWindows23Windows CSV
xlCurrentPlatformText-4158当前平台文本
xlDBF27DBF2
xlDBF38DBF3
xlDBF411DBF4
xlDIF9DIF
xlExcel1250ET 12
xlExcel216ET 2
xlExcel2FarEast27Excel2 FarEast
xlExcel329Excel3
xlExcel433Excel4
xlExcel4Workbook35Excel4 工作簿
xlExcel539Excel5
xlExcel739Excel7
xlExcel856Excel8
xlExcel979543Excel9795
xlHtml44HTML 格式
xlIntlAddIn26国际加载项
xlIntlMacro25国际宏
xlOpenDocumentSpreadsheet60OpenDocument 电子表格
xlOpenXMLAddIn55打开 XML 加载项
xlOpenXMLTemplate54打开 XML 模板
xlOpenXMLTemplateMacroEnabled53打开启用的 XML 模板宏
xlOpenXMLWorkbook51打开 XML 工作簿
xlOpenXMLWorkbookMacroEnabled52打开启用的 XML 工作簿宏
xlSYLK2SYLK
xlTemplate17模板
xlTemplate817模板 8
xlTextMac19Macintosh 文本
xlTextMSDOS21MSDOS 文本
xlTextPrinter36打印机文本
xlTextWindows20Windows 文本
xlUnicodeText42Unicode 文本
xlWebArchive45Web 档案
xlWJ2WD114WJ2WD1
xlWJ340WJ3
xlWJ3FJ341WJ3FJ3
xlWK15WK1
xlWK1ALL31WK1ALL
xlWK1FMT30WK1FMT
xlWK315WK3
xlWK3FM332WK3FM3
xlWK438WK4
xlWKS4工作表
xlWorkbookDefault51默认工作簿
xlWorkbookNormal-4143常规工作簿
xlWorks2FarEast28Works2 FarEast
xlWQ134WQ1
xlXMLSpreadsheet46XML 电子表格
102102ofd
103103pdf
6552165521et
6552265522ett
6552365523uof
6552565525uos
Column.AutoFit

改变表格列宽,使之在单元格文本换行方式不变的情况下,适应文本宽度。

语法

express.AutoFit()

express   一个代表 Column 对象的变量。

说明

如果表格的宽度已等于从左边界到右边界的距离,则此方法无效。

示例

示例代码复制
/*本示例在新文档中创建一个 3x3 表格,然后调整第一列的宽度,使之与文本的宽度相称。*/
function test() {
    let docNew = Application.Documents.Add()
    let tableNew = docNew.Tables.Add(Selection.Range, 3, 3)
    tableNew.Cell(1, 1).Range.InsertAfter("First cell")
    tableNew.Columns.Item(1).AutoFit()
}
示例代码复制
/*本示例在新文档中创建一个 3x3 表格,然后调整所有列的宽度,使之与文本的宽度相称。*/
function test() {
    let docNew = Application.Documents.Add()
    let tableNew = docNew.Tables.Add(Selection.Range, 3, 3)
    tableNew.Cell(1, 1).Range.InsertAfter("First cell")
    tableNew.Cell(1, 2).Range.InsertAfter("This is cell (1,2)")
    tableNew.Cell(1, 3).Range.InsertAfter("(1,3)")
    tableNew.Columns.AutoFit()
}

我有个表格,列数比较多,行数比较少,我想自动调整到一页打印,便要知道分页所在的列,于是上百度搜索(搜索: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