Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Добавление записи в excel (http://forum.oszone.net/showthread.php?t=348370)

maxim43g 24-03-2021 20:50 2953820

Добавление записи в excel
 
Добрый день.
Есть журнал регистрации почтовой корреспонденции в организации в форме excel.
excel имеет вид

столбец А столбец Б столбец В
номер Тема Фамилия
1 Запрос Иванов



Хотелось бы создать запускаем файл который запрашивал "Введите тему", пользователь вводит тему, далее запрашивает "Введите фамилию", в ответ программа записывает данные в новую строку в столбец Б и В эти данные, а так же в столбце А присваивает номер по порядку и выводит сообщение пользователю "Ваш регистрационный номер %number%".

Iska 24-03-2021 21:49 2953828

maxim43g, а) это надо делать не в Excel'е, б) вместо:
Цитата:

Цитата maxim43g
excel имеет вид
столбец А столбец Б столбец В
номер Тема Фамилия
1 Запрос Иванов »

выложите Ваш файл Рабочей книги.

maxim43g 24-03-2021 22:08 2953832

Вложений: 1
вот

Iska 25-03-2021 00:34 2953835

Вложений: 1
Пробуйте (на WSH): Файл 164152.

Замените путь в Sample.vbs в:
Код:

strSourceFile = "C:\Мои проекты\0341\пример.xlsx"
на Ваш. Если будете использовать свою Рабочую книгу — сначала создайте в ней excel список с именем «Список1» на основе данных таблицы:
Скрытый текст

maxim43g 25-03-2021 15:25 2953873

Спасибо большое, работает.
Но есть люди у которых нет Excel, а стоит Libreoffice, при этом либреофис есть абсолютно у всех.
Excel.Application вызывают ошибку, можно как то данную строку заменить на либреоффис?

Iska 25-03-2021 16:03 2953881

Цитата:

Цитата maxim43g
можно как то данную строку заменить на либреоффис? »

Заменить-то можно. Только работать от этого не станет.

maxim43g 25-03-2021 16:08 2953883

Цитата:

Цитата Iska
Только работать от этого не станет. »

и никакого выхода нет?

DJ Mogarych 25-03-2021 16:16 2953886

Есть. Powershell с модулем ImportExcel, ему Эксель не нужен.

Неизящно, но работает:
Код:

$theme = (read-host "Введите тему").Trim()
$surname = (read-host "Введите фамилию").Trim()

$path = "D:\temp\journal\журнал.xlsx"
$xlsx = (import-excel "$path") |? 'Номер регистрации' -match '\d'
$c = $xlsx[-1].'Номер регистрации' + 1

$obj = [PSCustomObject]@{
'Номер регистрации' = $c
Тема = $theme
Фамилия = $surname
}

$xlsx += $obj
$xlsx |Export-Excel -Path $path -WorksheetName 'Лист1' -AutoSize -BoldTopRow


Iska 25-03-2021 21:52 2953918

DJ Mogarych, мне токмо не нравится это:
Цитата:

Цитата DJ Mogarych
Код:

$c = $xlsx[-1].'Номер регистрации' + 1
»

Закладываться на наличие строгой сортировки во возрастанию я бы не стал.

DJ Mogarych 26-03-2021 08:58 2953957

Ну проблем-то:
Код:

$xlsx = (import-excel "$path") |? 'Номер регистрации' -match '\d' |sort 'Номер регистрации'


Время: 15:30.

Время: 15:30.
© OSzone.net 2001-