Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

18 Октябрь 2017, 17:53 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Вы можете задать вопрос по LibreOffice или Apache OpenOffice  без регистрации, используя форму
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Экспорт в CSV нескольких листов из электронной таблицы ODS (или XLS)  (Прочитано 334 раз)
0 Пользователей и 1 Гость смотрят эту тему.
kompilainenn
Ветеран
*****
Offline Offline

Сообщений: 2 091



« Стартовое сообщение: 2 Август 2017, 19:50 »

Опция командной строки --convert-to csv делает экспорт только первого листа. Какие есть методы экспортить несколько листов или скажем все с данными? Конечно интересует автоматизация, ручками делается всё

ps: что-то по форуму не нашел похожей темы, хотя может криво искал?
Записан

Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 346


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #1: 2 Август 2017, 20:12 »

Где-то когда-то кто-то подвёл итог длинной дискуссии "В общем, пишем макрос, который пробежится по всем листам заданной книги и по какому-то условию выбросит в отдельные файлы некоторые листы, суём этот макрос в какую-то из библиотек офиса и указываем этот макрос"... Не нашёл, наверное, потому, что это обсуждение было не у нас...
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
rami
Гуру
*******
Online Online

Пол: Мужской
Сообщений: 2 230


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #2: 2 Август 2017, 20:25 »

Не нашёл, наверное, потому, что это обсуждение было не у нас...
Где-то у нас было, нужно искать...

Документ CSV в принципе одностраничный и не может ничего содержать кроме текста.
Записан

economist
Ветеран
*****
Offline Offline

Сообщений: 715


« Ответ #3: 3 Август 2017, 08:38 »

Код:
Option VBASupport 1
Option Compatible

Sub ExportSheetsToTXT
Open "C:\DOWNLOAD\export.txt" for output as #1
For each sh in Worksheets
For each n in sh.UsedRange.Rows
Print #1, Cells(n.row,1) & ";" & Cells(n.row,2) & ";" & Cells(n.row,3)
Next n
Next sh
Close #1
End Sub
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
kompilainenn
Ветеран
*****
Offline Offline

Сообщений: 2 091



« Ответ #4: 3 Август 2017, 09:19 »

а если каждый лист в отдельный файл?
Записан

Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут
rami
Гуру
*******
Online Online

Пол: Мужской
Сообщений: 2 230


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #5: 3 Август 2017, 09:27 »

а если каждый лист в отдельный файл?
Вот так:
Код:
Sub Main
Dim args(1) as new com.sun.star.beans.PropertyValue, sh
args(0).Name = "FilterName"
args(0).Value = "scalc: Text - txt - csv (StarCalc)"
args(1).Name = "FilterOptions"
args(1).Value = "44,34,0,1"

For Each sh In ThisComponent.Sheets
ThisComponent.CurrentController.setActiveSheet(sh)
ThisComponent.storeToURL("file:///Папка/для/импорта/" & sh.name & ".csv",args())  'Исправить путь к целевой папке
Next
End Sub
Записан

Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!