WPS 中使用js从一个工作簿复制指定区域的数据到另一个工作簿的指定区域,这两张表是在同一目录下两个名字不同的.xlsm文件和.csv,我自己尝试的Copy没有作用。求指点!如果能有完整的代码最好,如果不方便的话请指点思路和可能会用到某一小段关键代码也好,我对照着研究。
首先需要使用WPS的COM对象来打开两个工作簿,然后分别获取需要复制的区域和目标区域,最后将数据复制到目标区域中。
以下是一个简单的示例代码:
// 创建WPS应用程序对象
var wps = new ActiveXObject("KWPS.Application");
// 打开源工作簿
var sourceWorkbook = wps.Workbooks.Open("source.xlsm");
// 打开目标工作簿
var targetWorkbook = wps.Workbooks.Open("target.xlsm");
// 获取源工作簿中需要复制的区域
var sourceRange = sourceWorkbook.Worksheets("Sheet1").Range("A1:B10");
// 获取目标工作簿中需要粘贴的区域
var targetRange = targetWorkbook.Worksheets("Sheet2").Range("C1:D10");
// 复制数据
sourceRange.Copy(targetRange);
// 保存目标工作簿
targetWorkbook.Save();
// 关闭工作簿
sourceWorkbook.Close();
targetWorkbook.Close();
// 退出应用程序
wps.Quit();
需要注意的是,需要在WPS中开启COM对象的支持,具体方法可以在WPS的帮助文档中查找。另外,需要根据实际情况修改源工作簿和目标工作簿的路径和需要复制和粘贴的区域。
用 WPS 提供的 COM 组件。当源文件名为 source.xlsm,目标文件名为 target.xlsm,需要复制的数据在源文件的 Sheet1 中 A1:B2 区域内,要粘贴到目标文件的 Sheet2 中 C1:D2 区域内
// 创建 WPS.Application COM 对象
var app = new ActiveXObject("WPS.Application");
// 打开源文件和目标文件
var sourceWorkbook = app.Workbooks.Open("source.xlsm");
var targetWorkbook = app.Workbooks.Open("target.xlsm");
// 获取源文件 Sheet1 的 A1:B2 区域
var sourceRange = sourceWorkbook.Worksheets("Sheet1").Range("A1:B2");
// 获取目标文件 Sheet2 的 C1:D2 区域
var targetRange = targetWorkbook.Worksheets("Sheet2").Range("C1:D2");
// 将源文件区域的值复制到目标文件区域
sourceRange.Copy(targetRange);
// 保存目标文件并关闭文件
targetWorkbook.Save();
targetWorkbook.Close();
// 关闭源文件和 WPS.Application COM 对象
sourceWorkbook.Close();
app.Quit();