Войти

Показать полную графическую версию : Из Exel в txt с добавлением определенного текста


d22cva
31-03-2015, 09:16
Добрый день!
Попытаюсь описать задачу понятно.
Имею экселевский файл с списком рекламы 28.03.2015.xls. В колонке название блока указан номер блока. Необходимо чтобы скрипт создал тестовый файл с именем номера блока взятого из колонки с номером блока и расширением .air, далее в файле вставлял в этот файл в первую строку строчку "comment 0 " без кавычек и номер блока, а далее брал ID ролика и в каждую строку добавляя перед ID "movie 0:00:00.00 R:", а после ID добавлял ".avi", чтоб получилось так :

comment 0 1
movie 0:00:00.00 R:437585.avi
movie 0:00:00.00 R:491517.avi
movie 0:00:00.00 R:700948039.avi

и так с каждым блоком новый файл.
В файле 40 блоков и должно получиться 40 текстовых файлов с расширением .air
Подскажите можно это скриптом реализовать?
1.rar прилагаю с иходником Exel 28.03.2015.xls и результат как должно получиться 01-РЕК.air

megaloman
31-03-2015, 19:37
fXLS = "28.03.2015.xls" ' Имя Excel-файла в тек папке

NBlok1 = "A5" ' Ячейка с первым номером блока
ID1 = "D5" ' Ячейка с первым ID

NBlank = 20 ' Max число строк с пустыми ID

iBlank = 0
i = 0

Set FSO = CreateObject("Scripting.FileSystemObject")

PfXLS=Replace(WScript.ScriptFullName,WScript.ScriptName,fXLS)

Set XL = CreateObject("Excel.Application")
XL.Visible = False 'True
XL.Workbooks.Open PfXLS

Do While iBlank <= NBlank
V1 = (XL.Range(NBlok1).Offset(i, 0))
V2 = (XL.Range(ID1).Offset(i, 0))

If V1 = 0 And V2 = 0 Then
iBlank = iBlank + 1
Else
If V1 <> 0 Then
If i <> 0 Then
NFile.Close ' Закрываем файл
End If
Set NFile = FSO.OpenTextFile(Right(CStr(V1 + 1000000000), 2) + "-РЕК.air", 2, True) ' Открываем текстовый файл для перезаписи. Если файла нет, будет создан
NFile.WriteLine "comment 0 " + Right(CStr(V1 + 1000000000), 2)
End If
NFile.WriteLine "movie 0:00:00.00 R:" + CStr(V2) + ".avi"
iBlank = 0
End If
i = i + 1
Loop

NFile.Close ' Закрываем файл
XL.Quit




© OSzone.net 2001-2012