vbscript сохраняет лидирующие нули при преобразовании текста в xlsx - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь преобразовать текстовый файл (с разделителями табуляции) в xlsx. Приведенный ниже скрипт успешно выполняет преобразование, но он удаляет первые 0, я попытался предварительно отформатировать все ячейки в текст, используя

objWorkSheet.Cells.NumberFormat = "@"

но результат не имеет даже нулей хотя все ячейки отформатированы в текст. Что-нибудь, что я могу добавить к коду, чтобы он сохранил ведущие нули? Спасибо

 Function convert()
Const xlTextQualifierDoubleQuote = 1
Const xlInsertDeleteCells = 1
Const xlDelimited = 1

Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = False
objExcel.DisplayAlerts= False

strCSVfile = "C:\Users\xxxx\Downloads\a.txt"
strXLSfile = "C:\Users\xxxx\Downloads\b.xlsx"

Set objWorkbook = objExcel.Workbooks.Add
Set objWorkSheet = objWorkbook.Worksheets(1)
objWorkSheet.Cells.NumberFormat = "@"
With objWorkSheet.QueryTables.Add("TEXT;" & strCSVfile, objWorkSheet.Range("$A$1"))
    .Name = "input"
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .TextFilePromptOnRefresh = False
    .TextFilePlatform = 437
    .TextFileStartRow = 1
    .TextFileParseType = xlDelimited
    .TextFileTextQualifier = xlTextQualifierDoubleQuote
    .TextFileConsecutiveDelimiter = False
    .TextFileTabDelimiter = True
    .TextFileSemicolonDelimiter = False
    .TextFileCommaDelimiter = False
    .TextFileSpaceDelimiter = False
    .TextFileOtherDelimiter = "#"
    .TextFileColumnDataTypes = Array(1, 1, 1)
    .TextFileTrailingMinusNumbers = True
    .Refresh False
End With

'Save Spreadsheet, 51 = Excel 2007-2010
objWorkSheet.SaveAs strXLSfile, 51

'Release Lock on Spreadsheet
objExcel.Quit()
Set ObjExcel = Nothing
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...