В настоящее время у меня есть некоторый JavaScript в приложении .hta, который открывает книгу .xlsx, сохраняет каждый лист в виде файла CSV, а затем удаляет пустые столбцы / строки.
Я пытаюсь ввести новый шаг, которыйпереименовывает любые ячейки, которые содержат один вопросительный знак "?"
в электронной таблице, на пустое ""
.
Идея состоит в том, что этот шаг переименования выполняется перед удалением пустых строк / столбцов.
КогдаЯ выполняю код ниже, вопросительные знаки все еще присутствуют в CSV-файлах?Почему переименование работает не так, как задумано?
// Open the workbook.
var wb = xlApp.Workbooks.Open(aFile.Path);
log('Successfully opened the file.');
// Save each worksheet as a CSV file.
var sheetNum = 0;
for(var sheetIndex = 1, sheetCount = wb.Sheets.Count; sheetIndex <= sheetCount; sheetIndex++) {
var ws = wb.Sheets.Item(sheetIndex);
var wsName = ws.Name;
var usedRng = ws.UsedRange;
//Replace "?" with ""
var num_col = ws.UsedRange.columnCount
var num_row = ws.UsedRange.rowCount
for (i = 0; i < num_row; i++) {
for (j = 0; j < num_col; i++) {
ws.UsedRange.getCell(i,j).values = ws.UsedRange.getCell(i,j).values.replace("?","");
}
}
//Remove all blank rows
for(var i = usedRng.Rows.Count; i > 0; i--){
if( xlApp.CountA(usedRng.Rows(i)) == 0 ) usedRng.Rows(i).Delete();
}
//Remove all blank columns
for(var i = usedRng.Columns.Count; i > 0; i--){
if( xlApp.CountA(usedRng.Columns(i)) == 0 ) usedRng.Columns(i).Delete();
}