Как мне создать текстовый файл, чтобы при его открытии в Excel строки группировались вместе?

StackOverflow https://stackoverflow.com/questions/1038811

Вопрос

Я собираю некоторые данные с помощью Perl-скрипта.Данные должны быть просмотрены и обработаны другими пользователями с помощью Excel.В настоящее время я записываю данные в виде текстового файла с разделителями в виде табуляции, и Excel может открыть это просто отлично.

Однако в данных существует иерархия, и рецензентам было бы легче увидеть дерево, а не плоский список.То есть вместо представления данных в виде столбцов,

foo    foo1
foo    foo2
foo    foo3
bar    bar1
bar    bar2
...

представьте его в виде дерева, которое можно развернуть щелчком мыши:

foo
    foo1
    foo2
    foo3
bar
    bar1
    bar2
...

Групповая функция Excel (найдена в 2007 году в разделе "Данные> Схема > Группа") хорошо подходит для этой презентации, поскольку с ней немного проще работать, чем со сводными таблицами.

Какой самый простой способ для нас перейти от этого плоского списка столбцов к этому сгруппированному списку?В идеале я мог бы записать данные в текстовой форме, чтобы Excel автоматически применял группировку при их импорте.В качестве альтернативы, если бы было небольшое количество шагов, которые рецензент мог бы применить после импорта данных, например, применить макрос или шаблон, это тоже было бы нормально.

Это было полезно?

Решение

Поскольку вы уже используете Perl, я предлагаю вам создать файл Excel непосредственно в Perl, используя отличный модуль CPAN Электронная таблица :: WriteExcel , которая поддерживает Схемы Excel .

Работает примерно так:

     .
     .
     $worksheet->write('A2',  'foo');
     $worksheet->write('B3',  'foo1');
     $worksheet->write('B4',  'foo2');
     $worksheet->write('B5',  'foo3');
     $worksheet->set_row(2,  undef, undef, 0, 1, 1);
     $worksheet->set_row(3,  undef, undef, 0, 2);
     $worksheet->set_row(4,  undef, undef, 0, 2);
     $worksheet->set_row(5,  undef, undef, 0, 2);
     .
     .

Другие советы

  1. Выберите все строки, включая заголовки столбцов, в списке, который вы хотите отфильтровать.

    Подсказка Щелкните верхнюю левую ячейку диапазона, а затем перетащите в нижнюю правую ячейку.

  2. В меню "Данные" выберите пункт "Фильтр", а затем выберите пункт "Расширенный фильтр".
  3. В диалоговом окне Расширенный фильтр нажмите кнопку Отфильтровать список на месте.
  4. Установите флажок Только уникальные записи, а затем нажмите кнопку ОК.

    Отобразится отфильтрованный список, а повторяющиеся строки будут скрыты.

  5. В меню Правка выберите пункт Буфер обмена Office.

    Отобразится панель задач буфера обмена.

  6. Убедитесь, что отфильтрованный список по-прежнему выбран, а затем нажмите кнопку Копировать Копировать.

    Отфильтрованный список выделяется ограничивающими контурами, а выделенный элемент отображается в виде элемента в верхней части буфера обмена.

  7. В меню "Данные" выберите пункт "Фильтр", а затем нажмите "Показать все".

    Исходный список будет отображен повторно.

  8. Нажмите клавишу DELETE.

    Исходный список будет удален.

  9. В буфере обмена щелкните по элементу отфильтрованного списка.

    Отфильтрованный список отображается в том же месте, что и исходный список.

Последние версии Excel (здесь мы используем 2003 год) могут использовать формат XML, xlsx.Файл xlsx - это zip-файл XML-файла.Если вы хотите создать файл, который будет открываться в Excel с нужными вам настройками, попробуйте следующее:сначала создайте файл шаблона с нужной вам группировкой.Сохраните его как xlsx.Распакуйте файл с помощью стандартного программного обеспечения zip.Взгляните на то, что внутри.Я специально не работал с группировкой, но все команды в вашей электронной таблице будут там в форме xml, вам нужно будет выяснить, где задана группировка.Затем остается внести соответствующие изменения в xml-файл и повторно заархивировать.Требуется немного усилий, но вы можете использовать этот метод для программного создания файлов, которые предварительно сгруппированы.Возможно, существуют библиотеки Perl, специально предназначенные для этого, я не знаю.

CSV-файл также очень легко сгенерировать.OpenOffice позволяет вам выбирать, как анализировать данные, но Excel исключает столбцы, разделенные запятыми (без каких-либо кавычек), и строки, разделенные CRLF.

A1,A2,A3
B1,B2,B3

и т.д.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top