批量新增EXCEL

阅读次数 50

批量新增sheet工作表会出现 无法获取到工作表名称问题,数量大约为70左右,这是问题代码

// 模版sheet名称
const tempSheetName = '接口模版'; 
// 读取工作表 目录 所有行数据
Application.Sheets.Item('目录').Activate()
// 打印该工作表列的数量
const sheet = Application.ActiveSheet;
let rowSum = sheet.UsedRange.RowEnd;
console.log(rowSum)
// 打印所有工作表的名称 
let rows = sheet.UsedRange.Rows;
let sheetName = '';
let name = '';
let code = '';
let obj = null;
for (let i = 2; i <= rowSum; i++) {
  obj = rows(i);
  name = obj.Columns(5).Text;
  code = obj.Columns(3).Text;
  sheetName = name +"("+code+")" ;
  console.log(i+':'+sheetName)
  // 添加工作表
  Application.Sheets.Add(
    null,
    Application.ActiveSheet.Name,
    1,
    Application.Enum.XlSheetType.xlWorksheet,
    sheetName
  )
}
1 Answers

您好,发现这个写法我们有bug,你可以先用这种方式去新建工作表,这个bug我们会修复的。

// 模版sheet名称
const tempSheetName = '接口模版';
// 读取工作表 目录 所有行数据
Application.Sheets.Item('目录').Activate()
// 打印该工作表列的数量
const sheet = Application.ActiveSheet;
let rowSum = sheet.UsedRange.RowEnd;
console.log(rowSum)
// 打印所有工作表的名称 
let rows = sheet.UsedRange.Rows;
let sheetName = '';
let name = '';
let code = '';
let obj = null;
const sheetNames = []
for (let i = 2; i <= rowSum; i++) {
  obj = rows(i);
  name = obj.Columns(5).Text;
  code = obj.Columns(3).Text;
  sheetName = name + "(" + code + ")";
  console.log(i + ':' + sheetName)
  sheetNames.push(sheetName)
}
for (const name of sheetNames) {
  // 添加工作表
  Application.Sheets.Add(
    null,
    Application.ActiveSheet.Name,
    1,
    Application.Enum.XlSheetType.xlWorksheet,
    name
  )
}