Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Создание текстового файла из базы excel

Ответить
Настройки темы
CMD/BAT - Создание текстового файла из базы excel
4zz 4zz вне форума

Пользователь


Сообщения: 88
Благодарности: 3

Профиль | Отправить PM | Цитировать


Изменения
Автор: 4zz
Дата: 23-02-2022
Уважаемые знатоки!
помогите написать bat файл по следующим условиям:
Есть текстовый файл, состоящий из 10 строк:
[0]
name=ХХХХХ
bdate=23.05.1969
btime=08:00:00
event=Таймер
photo=
RunOnce=0
cmd=
ScanDays=5
Color=

И есть база данных в формате excel состоящая из трех столбцов - номер, фио и дата.

Необходимо чтобы при запуске бат файла копировался блок строк(10+пустая) из текстового файла, вставлялся в конец этого файла при этом заменял значения полей [0], name=, bdate= на значения из файла базы excel и так до окончания заполненных строк в базе excel.
Спасибо!)

Отправлено: 23:50, 23-05-2020

 

Аватара для Fors1k

Старожил


Сообщения: 193
Благодарности: 112

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
Param(
    $pathXls = "C:\База.xlsx",
    $pathTxt = "C:\bm.txt"
)cls

$i=2;$a = gc $pathTxt -To 10;$Excel = New-Object -ComObject Excel.Application
$WorkBook=$Excel.Workbooks.Open($pathXls);$WorkSheet=$WorkBook.Sheets.Item(1)
do{
    $b=$a;$i++;$b+=''
    $b[0] = "[$($Worksheet.Range("b$i").text)]"
    $b[1] = "name=$($Worksheet.Range("c$i").text)"
    $b[2] = "bdate=$($Worksheet.Range("d$i").text)"
    if ($( $Worksheet.Range("b$i").text )  -eq  '')
    {break}$b|Add-Content $pathTxt
}
while($true);$Excel.Quit();notepad $pathTxt

Последний раз редактировалось Fors1k, 24-05-2020 в 20:56.


Отправлено: 15:48, 24-05-2020 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Contributor


Сообщения: 2703
Благодарности: 1683

Профиль | Отправить PM | Цитировать


VBS
Код: Выделить весь код
FileInTxt = "Z:\Box_In\TxtBlanc.txt"
FileInBas = "Z:\Box_In\База.xlsx"

FileOut = "Z:\Box_Out\База.txt"

MRep = Array("^\[.*\] *", "B3", _
        "name=", "C3", _
        "bdate=", "D3")

LRep = LBound(MRep)
URep = UBound(MRep)

Set Book = CreateObject("Excel.Application")
Book.Visible = False 'True  ' False	'
Book.Workbooks.Open FileInBas

Set FSO = CreateObject("Scripting.FileSystemObject")

Set fIn = FSO.OpenTextFile(FileInTxt, 1, False)
InTxt = Trim(fIn.ReadAll)
fIn.Close

If Right(InTxt, 2) <> vbCrLf Then InTxt = InTxt + vbCrLf

Set F = FSO.CreateTextFile(FileOut, True)

Skip = ""
With CreateObject("VBScript.RegExp")
    .IgnoreCase = True
    j = 0
    Do
        If Trim(Book.Range(MRep(LRep + 1)).Offset(j, 0)) = "" Then Exit Do
        For i = LRep To URep Step 2
            If i = LRep Then
                .Pattern = MRep(i) + vbCrLf
                InTxt = .Replace(InTxt, "[" + CStr(Book.Range(MRep(i + 1)).Offset(j, 0)) + "]" + vbCrLf)
            Else
                .Pattern = vbCrLf + MRep(i) + ".*" + vbCrLf
                InTxt = .Replace(InTxt, vbCrLf + MRep(i) + CStr(Book.Range(MRep(i + 1)).Offset(j, 0)) + vbCrLf)
            End If
        Next
        j = j + 1
        F.Write Skip + InTxt
        Skip = vbCrLf
    Loop
End With
F.Close
'Book.ActiveWorkbook.Close
Book.Quit

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 20:36, 24-05-2020 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Создание текстового файла из базы excel

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - Импорт данные из текстового файла (*.txt) в таблицу Excel Serg2010 Скриптовые языки администрирования Windows 19 14-10-2019 20:13
CMD/BAT - [решено] Создание текстового файла с набором символов 4zz Скриптовые языки администрирования Windows 22 28-03-2019 13:11
CMD/BAT - Сборка текстового файла из содержимого другого текстового файла icomboy Скриптовые языки администрирования Windows 0 10-09-2013 15:17
CMD/BAT - [решено] Создание текстового файла с последовательными числами указанного диапазона 91892823 Скриптовые языки администрирования Windows 2 03-08-2012 06:43
CMD/BAT - [решено] Как скопировать имя файла из текстового файла в код батника и т.д. Nun-Nun Скриптовые языки администрирования Windows 6 13-05-2009 13:28




 
Переход