Показать полную графическую версию : Добавление записи в excel
maxim43g
24-03-2021, 20:50
Добрый день.
Есть журнал регистрации почтовой корреспонденции в организации в форме excel.
excel имеет вид
столбец А столбец Б столбец В
номер Тема Фамилия
1 Запрос Иванов
Хотелось бы создать запускаем файл который запрашивал "Введите тему", пользователь вводит тему, далее запрашивает "Введите фамилию", в ответ программа записывает данные в новую строку в столбец Б и В эти данные, а так же в столбце А присваивает номер по порядку и выводит сообщение пользователю "Ваш регистрационный номер %number%".
maxim43g, а) это надо делать не в Excel'е, б) вместо:
excel имеет вид
столбец А столбец Б столбец В
номер Тема Фамилия
1 Запрос Иванов »
выложите Ваш файл Рабочей книги.
maxim43g
24-03-2021, 22:08
вот
Пробуйте (на WSH): 164152.
Замените путь в Sample.vbs в:
strSourceFile = "C:\Мои проекты\0341\пример.xlsx"
на Ваш. Если будете использовать свою Рабочую книгу — сначала создайте в ней excel список с именем «Список1» на основе данных таблицы:
https://i.imgur.com/Hy2HZ51.png
maxim43g
25-03-2021, 15:25
Спасибо большое, работает.
Но есть люди у которых нет Excel, а стоит Libreoffice, при этом либреофис есть абсолютно у всех.
Excel.Application вызывают ошибку, можно как то данную строку заменить на либреоффис?
можно как то данную строку заменить на либреоффис? »
Заменить-то можно. Только работать от этого не станет.
maxim43g
25-03-2021, 16:08
Только работать от этого не станет. »
и никакого выхода нет?
DJ Mogarych
25-03-2021, 16:16
Есть. 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
DJ Mogarych, мне токмо не нравится это:
$c = $xlsx[-1].'Номер регистрации' + 1 »
Закладываться на наличие строгой сортировки во возрастанию я бы не стал.
DJ Mogarych
26-03-2021, 08:58
Ну проблем-то:
$xlsx = (import-excel "$path") |? 'Номер регистрации' -match '\d' |sort 'Номер регистрации'
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.