乐于分享
好东西不私藏

WPS表格JSA之20:详解工作表+单元格操作

WPS表格JSA之20:详解工作表+单元格操作

在UOS系统中使用WPS表格办公时,很多人会被重复的表格操作(比如批量修改工作表、填充单元格数据)困扰。学点WPS表格JS脚本操作,能轻松实现自动化处理,大幅提升办公效率。

一、工作表操作(新建/重命名/删除/切换,批量搞定)

工作表是表格数据的载体,日常办公中新建、重命名、删除多个工作表的操作很繁琐,用JS脚本可一键批量完成,以下是最常用的4个实例,覆盖90%场景。

实例1:新建工作表(指定名称+位置)

适用场景:批量新建月度报表工作表(如“1月数据”“2月数据”),无需手动点击「新建工作表」。

// 新建工作表(指定名称,插入到当前工作表之前)function createNewSheet() {  // 获取当前活动工作簿  const workbook = Application.ActiveWorkbook;  // 新建工作表  const newSheet = workbook.Sheets.Add();  // 给新工作表命名  newSheet.Name = "1月数据";  // 激活新工作表(新建后自动切换过去)  newSheet.Activate();  // 提示操作完成  alert("工作表「1月数据」新建成功!");}

实例2:批量重命名工作表(按规则统一命名)

适用场景:将现有工作表(Sheet1、Sheet2…)批量重命名为“产品1”“产品2”…,统一格式。

// 批量重命名工作表function renameSheets() {  // 获取当前活动工作簿  const workbook = Application.ActiveWorkbook;  // 获取工作表总数  const sheetCount = workbook.Worksheets.Count;  // 循环遍历所有工作表,依次重命名  for (let i = 1; i <= sheetCount; i++) {    const sheet = workbook.Worksheets(i);    // 重命名规则:产品+i(可修改为自己需要的规则,如“客户+i”)    sheet.Name = "产品" + i;  }  alert(`共${sheetCount}个工作表,已批量重命名完成!`);  }

实例3:删除指定工作表(避免误删,带判断)

适用场景:删除不需要的工作表(如“临时数据”),添加判断条件,防止误删重要工作表。

// 删除指定名称的工作表function deleteSheet() {  // 获取当前活动工作簿  const workbook = Application.ActiveWorkbook;  // 目标删除工作表名称  const targetName = "临时数据";  const sheetCount = workbook.Worksheets.Count;  // 循环查找目标工作表,找到后删除  for (let i = 1; i <= sheetCount; i++) {    const sheet = workbook.Worksheets(i);    if (sheet.Name === targetName) {      // 删除工作表(DisplayAlerts=false:关闭删除确认弹窗)      Application.DisplayAlerts = false;      sheet.Delete();      Application.DisplayAlerts = true;      alert(`工作表「${targetName}」已删除!`);      return// 找到后直接退出循环,避免多删    }  }  // 若未找到目标工作表,提示信息  alert(`未找到名称为「${targetName}」的工作表!`);}

注意:删除操作不可逆,建议运行前备份表格数据;DisplayAlerts=false用于关闭系统确认弹窗,可根据需求保留。

实例4:切换到指定工作表+获取工作表信息

适用场景:快速切换到目标工作表(如“汇总表”),并获取该工作表的编号、所用区域等信息,用于后续操作。

// 切换工作表并获取工作表信息function getSheetInfo() {  // 获取当前活动工作簿  const workbook = Application.ActiveWorkbook;  // 目标切换工作表名称  const targetName = "汇总表";  let targetSheet = null;  // 查找目标工作表  const sheetCount = workbook.Worksheets.Count;  for (let i = 1; i <= sheetCount; i++) {    const sheet = workbook.Worksheets(i);    if (sheet.Name === targetName) {      targetSheet = sheet;      break;    }  }  if (targetSheet) {    // 切换到目标工作表    targetSheet.Activate();    // 获取工作表信息(名称、所用区域行数)    const sheetName = targetSheet.Name// 工作表名称    const sheetId = targetSheet.Index;//工作表编号    const usedRows = targetSheet.UsedRange.Rows.Count// 所用区域行数    // 弹出信息提示    alert(`已切换到工作表「${sheetName}」\n编号:${sheetId}\n已使用行数:${usedRows}`);  } else {    alert(`未找到「${targetName}」工作表!`);  }}

二、单元格操作(取值/赋值/格式设置/批量填充,解放双手)

单元格是表格数据的最小单元,取值、赋值、格式设置是最基础的操作,用JS可实现批量处理,尤其适合大量数据录入和格式统一,以下实例覆盖常用场景,兼顾基础和进阶。

实例1:基础操作(单元格取值/赋值)

适用场景:获取指定单元格(如A1)的值,或给指定单元格(如B2)赋值,替代手动输入。

// 单元格取值+赋值基础操作function cellBaseOp() {  // 获取当前活动工作表  const sheet = Application.ActiveWorkbook.ActiveSheet;  // 1. 给指定单元格赋值(A1赋值文本,B2赋值数字,C3赋值日期)  sheet.Cells(11).Value2 = "产品名称"// Cells(行, 列),1=A列,2=B列...  sheet.Cells(12).Value2 = 100// B2赋值数字100  sheet.Cells(13).Value2 = new Date(); // C3赋值当前日期  // 2. 获取指定单元格的值(获取A1、B2的值并弹出提示)  const a1Value = sheet.Cells(11).Value2;  const b2Value = sheet.Cells(12).Value2;  alert(`A1的值:${a1Value}\nB1的值:${b2Value}`);}

关键说明:Cells(行, 列)是核心语法,行和列均为数字(如A列=1、B列=2),无需记忆字母列标,新手也能快速上手。

实例2:批量填充单元格(指定范围,统一赋值)

适用场景:给指定单元格范围(如A2:A10)批量填充相同内容(如“未审核”),替代手动复制粘贴。

// 批量填充指定范围单元格function batchFillCell() {  const sheet = Application.ActiveWorkbook.ActiveSheet;  // 批量填充:A2到A10,全部填充“未审核”  const range = sheet.Range("A2:A10"); // 指定单元格范围(和表格中输入范围一致)  range.Value2 = "未审核";  // 可选:给填充的单元格设置字体颜色(红色),让内容更醒目  range.Font.Color = 255;  alert("A2:A10范围已批量填充完成,字体设置为红色!");}

扩展:可修改Range范围(如“B2:D10”),填充内容也可改为数字、日期等,同时支持设置字体、字号等格式,颜色值不知是多少时可通过录制宏代码查看。

实例3:进阶操作(批量填充公式,动态计算)

适用场景:批量给指定范围单元格填充公式(如计算A列+B列的和、C列的含税价),无需手动输入公式,适合大量数据计算。

// 批量填充公式,实现动态计算function fillFormulaBatch() {  // 关闭屏幕刷新(提升批量操作速度),操作完成后恢复  Application.ScreenUpdating = false;  const sheet = Application.ActiveWorkbook.ActiveSheet;  // 获取表格已使用的最大行数(避免手动指定结束行)  const lastRow = sheet.UsedRange.Rows.Count;  // 循环填充公式(从第2行开始,跳过表头)  for (let row = 2; row <= lastRow; row++) {    // 1. D列:填充公式=A列+B列(如D2=A2+B2)    sheet.Cells(row, 4).Formula = `=A${row}+B${row}`;    // 2. E列:填充公式=C列*1.1(含税价,如E2=C2*1.1)    sheet.Cells(row, 5).Formula = `=C${row}*1.1`;    // 3. F列:填充IF判断公式(C列>1000显示“高”,否则显示“低”)    sheet.Cells(row, 6).Formula = `=IF(C${row}>1000,"高","低")`;  }  // 关闭屏幕刷新(提升批量操作速度),操作完成后恢复  Application.ScreenUpdating = true;  alert(`公式填充完成!共处理${lastRow-1}行数据(跳过表头)`);}

实用技巧:该实例可直接用于报表计算(如销售数据汇总、成本核算),只需修改公式内容,就能适配不同场景,比手动输入公式高效10倍以上。

实例4:单元格格式设置(批量美化,统一规范)

适用场景:批量设置单元格格式(如表头加粗、居中、背景色,数字保留2位小数),让表格更规范、更美观。

function setCellFormat() {  const sheet = Application.ActiveWorkbook.ActiveSheet;  // 1. 设置表头格式(A1:F1,加粗、居中、黄色背景、黑色字体)  const titleRange = sheet.Range("A1:F1");  titleRange.Font.Bold = true// 加粗  titleRange.HorizontalAlignment = 2// 2=水平居中(1=左对齐,3=右对齐)  titleRange.Interior.Color = 65535// 背景色黄色  titleRange.Font.Color = "#000000"// 字体颜色黑色  // 2. 设置数字格式(B2:C10,保留2位小数)  const numRange = sheet.Range("B2:C10");  numRange.NumberFormat = "0.00"// 保留2位小数  // 3. 设置日期格式(G2:G10,格式为yyyy-mm-dd)  const dateRange = sheet.Range("G2:G10");  dateRange.NumberFormat = "yyyy-mm-dd";  // 4. 调整列宽(A到F列,统一宽度为15)  for (let col = 1; col <= 6; col++) {    sheet.Columns(col).ColumnWidth = 15;  }  alert("单元格格式批量设置完成,表格已美化!");}

三、常见问题&注意事项(避坑必看)

  1. 脚本运行报错?先检查宏功能是否启用,再确认代码中工作表名称、单元格范围是否正确,避免拼写错误;
  2. 无法获取单元格值?确保目标工作表是活动工作表,或在代码中明确指定工作表(如workbook.Worksheets(“汇总表”));
  3. 批量操作卡顿?在代码开头添加app.ScreenUpdating = false,操作完成后恢复为true,关闭屏幕刷新提升速度;
  4. 语法不兼容?避免使用ES6+语法(如let、const可正常使用,但箭头函数、模板字符串需谨慎),示例代码均为兼容写法;
  5. 安全提示?WPS会拦截未知脚本,运行前需确认脚本来源安全,避免运行陌生脚本导致数据泄露。

四、总结

以上就是UOS系统WPS表格中,JS操作工作表和单元格的核心方法及实例,覆盖新建、删除、取值、赋值、批量填充、格式设置等常用场景。

其实JS操作WPS表格的核心逻辑很简单:通过API获取工作表和单元格对象,再调用对应的属性和方法,实现自动化操作。新手可以从基础实例(如单元格赋值、新建工作表)开始,熟悉语法后再尝试进阶操作(如批量填充公式、多表汇总)。

学会这些脚本,能轻松解决重复办公难题,比如批量处理几百行数据、统一表格格式、多工作表汇总等,让你从繁琐的表格操作中解放出来,专注更重要的工作~

如果你有具体场景或疑问,欢迎在评论区留言,宝哥会尽力解答!

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » WPS表格JSA之20:详解工作表+单元格操作

评论 抢沙发

6 + 8 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮