Да инструментов особо нет.
Есть источник данных - БД MySQL, если будет проще можно изменить на Excel.
И табличка в ворде, сделанная по определенному формату. В 1 табличку надо записать данные 1 поставщика. Поставщиков много, но количество заранее неизвестно.
Скрипт на Python пока готов на выборку из БД, он стандартный, его приводить смысла особо не вижу. Инструменты как раз хотел спросить тут. Возможно есть готовые решения.
Роман Юрьевич Ипатьев, Возможно я не так выразился, я знаю что SQL язык, вручную часто составляю запросы на нем, вопрос не в этом. А как эти запросы автоматизировать.
Денис Загаевский, это происходит если запустить gradle run --stacktrace
C:\Users\fedorov.p\IdeaProjects\Sheets_v4>gradle run --stacktrace
> Task :run FAILED
Exception in thread "main" java.lang.IllegalArgumentException
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:128)
at com.google.api.client.util.Preconditions.checkArgument(Preconditions.java:35)
at com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets.getDetails(GoogleClientSecrets.java:82)
at com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow$Builder.(GoogleAuthorizationCodeFlow.java:197)
at SheetsQuickstart.getCredentials(SheetsQuickstart.java:50)
at SheetsQuickstart.main(SheetsQuickstart.java:68)
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':run'.
> Process 'command 'C:\Program Files\JetBrains\jdk-16.0.1\bin\java.exe'' finished with non-zero exit value 1
* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':run'.
> Task :run FAILED
ш■ы. 28, 2021 2:47:11 PM com.google.api.client.util.store.FileDataStoreFactory setPermissionsToOwnerOnly
WARNING: Unable to set permissions for C:\Users\fedorov.p\IdeaProjects\Sheets_v4\tokens, because you are running on a non-POSIX file system.
Exception in thread "main" java.net.BindException: Address already in use: bind
at java.base/sun.nio.ch.Net.bind0(Native Method)
at java.base/sun.nio.ch.Net.bind(Net.java:552)
at java.base/sun.nio.ch.ServerSocketChannelImpl.netBind(ServerSocketChannelImpl.java:336)
at java.base/sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:294)
at java.base/sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:88)
at jdk.httpserver/sun.net.httpserver.ServerImpl.(ServerImpl.java:101)
at jdk.httpserver/sun.net.httpserver.HttpServerImpl.(HttpServerImpl.java:50)
at jdk.httpserver/sun.net.httpserver.DefaultHttpServerProvider.createHttpServer(DefaultHttpServerProvider.java:35)
at jdk.httpserver/com.sun.net.httpserver.HttpServer.create(HttpServer.java:150)
at com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver.getRedirectUri(LocalServerReceiver.java:140)
at com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp.authorize(AuthorizationCodeInstalledApp.java:121)
at SheetsQuickstart.getCredentials(SheetsQuickstart.java:56)
at SheetsQuickstart.main(SheetsQuickstart.java:68)
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':run'.
> Process 'command 'C:\Program Files\JetBrains\jdk-16.0.1\bin\java.exe'' finished with non-zero exit value 1
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
Alexander Ivanov, Да, я создавал его руками в Google консоли. В том то все и дело, что я те же доступы использовал и те же инструкции. И много еще разных вариантов. Не работает код. Не знаю в чем проблема. Рушится на том месте что я указал выше.
Sheets service = new Sheets.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials(HTTP_TRANSPORT))
Exception in thread "main" java.lang.IllegalArgumentException
Пытаюсь создать учетные данные в гугл консоли, но приложение не хочет коннектиться к нему:
> Task :SheetsQuickstart.main() FAILED
Exception in thread "main" java.lang.IllegalArgumentException
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:128)
at com.google.api.client.util.Preconditions.checkArgument(Preconditions.java:35)
at com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets.getDetails(GoogleClientSecrets.java:82)
at com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow$Builder.(GoogleAuthorizationCodeFlow.java:197)
at SheetsQuickstart.getCredentials(SheetsQuickstart.java:50)
at SheetsQuickstart.main(SheetsQuickstart.java:68)
Execution failed for task ':SheetsQuickstart.main()'.
> Process 'command 'C:/Program Files/JetBrains/jdk-16.0.1/bin/java.exe'' finished with non-zero exit value 1
Dmitry Roo, он не пустой, там есть проверка на ненулевую строку, плюс если вместо последнего printwriter сделать вывод на консоль, то данные на консоль выведутся корректно.
acwartz, Спасибо большое за ответ! Я наверное неверно выразился, я только учусь разработке и основная цель не получить готовый рабочий код, а разобраться с потоками и Printwriter. Я хочу понять почему не работает именно мой (не самый качественный) код. Буду признателен, если объясните.
Евгений, Все верно. Цикл в котором он закрывается создаст новый файл. Разве на следующем шаге цикла не создастся новый printwriter?
Сейчас на выходе программы получаю нужное количество файлов только с результатами работы первого printwriter, то есть заголовка.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Есть источник данных - БД MySQL, если будет проще можно изменить на Excel.
И табличка в ворде, сделанная по определенному формату. В 1 табличку надо записать данные 1 поставщика. Поставщиков много, но количество заранее неизвестно.
Скрипт на Python пока готов на выборку из БД, он стандартный, его приводить смысла особо не вижу. Инструменты как раз хотел спросить тут. Возможно есть готовые решения.