Преобразуйте .xlsx (MS Excel), файл к .csv на командной строке с точкой с запятой разделил поля

LVM, как все остальное, является палкой о двух концах.

Относительно производительности LVM препятствует Вам немного, потому что это - другой слой абстракции, которая должна быть разработана перед хитом битов (или может быть считан из), диск. В большинстве ситуаций этот хит производительности будет практически неизмерим.

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

Один недостаток LVM, используемой этим способом, - то, что, если Ваше дополнительное устройство хранения данных охватывает диски (т.е. включает больше чем один диск) Вы увеличиваете вероятность, что отказ диска будет стоить Вам данных. Если Ваша файловая система охватывает два диска и любого из них сбои, Вы, вероятно, потеряны. Для большинства людей это - приемлемый риск из-за причин пространства по сравнению со стоимостью (т.е. если это будет действительно важно то будет бюджет, чтобы сделать это правильно) - и потому что, как они говорят, резервные копии хороши, правильно?

Для меня единственная причина не использовать LVM состоит в том, что аварийное восстановление не (или по крайней мере, не был), четко определенный. Диск с объемами LVM, которые имели скремблированную ОС на нем, не мог тривиально быть присоединен к другому компьютеру и данным, восстановленным с нее; многие инструкции для восстановления объемов LVM, казалось, включали шаги, любят, возвращаются вовремя и выполняют vgcfgbackup, затем копируют получающийся/etc/lvmconf файл в систему, размещающую Ваш политый из шланга объем. Надо надеяться, вещи изменились за три или четыре года, так как я в последний раз должен был посмотреть на это, но лично я никогда не использую LVM поэтому.

Это сказало.

В Вашем случае я предположил бы, что VMs будут относительно маленькими по сравнению с хост-системой. Это значит для меня, Вы, более вероятно, захотите развернуть устройство хранения данных в VM позже; это лучше всего сделано путем добавления другого виртуального диска к VM и затем роста затронутых файловых систем VM. У Вас нет spanning-multiple-disks уязвимости, потому что виртуальные диски, довольно вероятно, будут на том же физическом устройстве в хост-системе.

Если VMs соберутся иметь важность для Вас вообще, то Вы будете RAID'ing хост-система так или иначе, которая уменьшит гибкость для роста устройства хранения данных позже. Таким образом, гибкость LVM, вероятно, не собирается требоваться.

Таким образом, я предположил бы, что Вы не будете использовать LVM в хост-системе, но установили бы VMs для использования LVM.

32
04.05.2014, 01:50
4 ответа

OpenOffice идет с unoconv программой для выполнения преобразований формата на командной строке.

unoconv -f csv filename.xlsx

Для более сложных требований можно проанализировать файлы XLSX с Spreadsheet::XLSX в Perl или openpyxl в Python. Например, вот беглый сценарий для распечатывания рабочего листа как разделенного от точки с запятой файла CSV (предупреждение: непротестированный, введенный непосредственно в браузере):

perl -MSpreadsheet::XLSX -e '
    $\ = "\n"; $, = ";";
    my $workbook = Spreadsheet::XLSX->new()->parse($ARGV[0]);
    my $worksheet = ($workbook->worksheets())[0];
    my ($row_min, $row_max) = $worksheet->row_range();
    my ($col_min, $col_max) = $worksheet->col_range();
    for my $row ($row_min..$row_max) {
        print map {$worksheet->get_cell($row,$_)->value()} ($col_min..$col_max);
    }
' filename.xlsx >filename.csv
22
27.01.2020, 19:37
  • 1
    unoconv, не шел с моим OO, но я установил его, и это работает отлично (преобразовывает в разделенный файл запятой, не точку с запятой хотя)!Спасибо! Я должен буду все еще выяснить, как я получу свои поля, которые содержат запятые. Но спасибо так или иначе. –  allrite 02.11.2011, 21:35
  • 2
    @allrite, О, я пропустил требование точек с запятой как разделители. Мое предложение, чтобы сделать обработку в Python или Perl все еще стоит. Но я также добавил сценарий (непротестированный) для преобразования в CSV с ; как разделитель. –  Gilles 'SO- stop being evil' 03.11.2011, 02:27
  • 3
    Спасибо! я использовал электронную таблицу:: XLSX, но использовал код в CPAN, связывают Вас обеспеченный. Это работает :) –  allrite 07.11.2011, 20:30
  • 4
    У анонимного пользователя были проблемы с этим –  Michael Mrozek♦ 11.03.2012, 07:41

Я использую xls2csv Perl для преобразования xls файлы к csv.

Не верный tho, если это работает с xlsx также.

О нас:

Это не может быть запятая, разделенная, к сожалению, так как некоторые столбцы имеют запятые в них

вот почему заключение в кавычки было представлено:

1,2,"data,data, more data"
6
27.01.2020, 19:37
  • 1
    благодарит за подсказку, я попробую это. Я все еще предпочитаю разделенную точку с запятой, так как после csv преобразования, файл проходит awk сценарии. И его просто легче передать точку с запятой как разделителя полей в awk. Я мог искать запятые в кавычках для замены их чем-то еще... теперь это - другой вопрос :) –  allrite 02.11.2011, 21:12
  • 2
    Спасибо @neurino. Я использовал метод Gilles вместо этого, но спасибо за ответ так или иначе. –  allrite 07.11.2011, 20:31

Я использую PHP. Просто установите библиотеку PHPExel из http://phpexcel.codeplex.com/, и вероятно Вам нужны функции XML также.

Это - мой код:

<?php

error_reporting(E_ALL);
date_default_timezone_set('Europe/London');

/** PHPExcel_IOFactory */

require_once '/home/markov/Downloads/1.7.6/Classes/PHPExcel/IOFactory.php';

$file="RIF394305.xlsx"; //PATH TO CSV FILE

// Check prerequisites

if (!file_exists($file)) {
    exit("Please run 06largescale.php first.\n");
}

$objReader = PHPExcel_IOFactory::createReader('Excel2003XML');

$objPHPExcel = $objReader->load($file);

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV');

$objWriter->save(str_replace('.xlsx', '.csv',$file));
?>

Можно вернуться процесс или использовать другой Excel/формат CSV. Посмотрите на различные php файлы в каталоге PHPExcel.

1
27.01.2020, 19:37

https://github.com/dilshod/xlsx2csv

Работавший хорошо для меня. Файл XLSX приблизительно на 85 МБ, преобразованный приблизительно в 3 минуты на Книге Mac Pro SSD.

9
27.01.2020, 19:37
  • 1
    Работавший хорошо в OSX $ python xlsx2csv.py -d ";" my.xlsx my.csv работавший хорошо и способность определить deliminator, спасибо +! –  hhh 26.01.2017, 12:44

Теги

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