@NikolayVersov

Макрос для LibreOffice?

Добрый день!
Работая с Excel микры использовал макрос для разбития файла. Основной файл - разбитие на 1000 строк и записывалось в новый файл с именем исходго только с добавление числа копии, исходные данные которые были заданы тоже копировались в новый файл. Так как нужно работать с большим объемом информации нужен макрос для LibreOffice так как с excel нет возможности работать. Может есть у кого такой макрос или пример.Заранее всем спасибо!
  • Вопрос задан
  • 303 просмотра
Пригласить эксперта
Ответы на вопрос 1
OrlovEvgenii
@OrlovEvgenii
golang developer / DevOps
Конечно, для LibreOffice тоже можно написать макрос, который разобьет файл на несколько меньших файлов по заданному количеству строк. Вот пример такого макроса:

Sub SplitFile
    Dim Doc As Object
    Dim Sheet As Object
    Dim RowCount As Long
    Dim FileNum As Integer
    Dim FileName As String
    Dim i As Long
    Dim j As Long
    Dim ChunkSize As Long
    
    ' Укажите путь к вашему файлу
    Doc = ThisComponent
    Sheet = Doc.Sheets(0)
    RowCount = Sheet.Rows.Count
    ChunkSize = 1000 ' Размер куска
    
    ' Цикл для разделения на куски
    For i = 0 To RowCount Step ChunkSize
        FileNum = FreeFile()
        ' Укажите путь и имя файла для сохранения
        FileName = "Новый файл " & Int(i / ChunkSize) + 1 & ".ods"
        Open FileName For Output As #FileNum
        
        ' Копирование данных в новый файл
        For j = i To i + ChunkSize - 1
            If j > RowCount Then Exit For
            For k = 0 To Sheet.Columns.Count - 1
                Print #FileNum, Sheet.getCellByPosition(k, j).String
            Next k
            Print #FileNum, ""
        Next j
        Close #FileNum
    Next i
End Sub


Этот макрос будет разбивать текущий лист в LibreOffice Calc на файлы по 1000 строк и сохранять каждый файл с уникальным именем, начиная с "Новый файл 1.ods". Вы можете изменить этот код, чтобы настроить количество строк, используемое для разделения, и имя файла, куда будут сохраняться данные.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы