나는 이것이라는 것을 깨닫는다아니요완전히 UNIX/Linux 관련 질문입니다. 하지만 이것이 제가 Linux에서 할 일이기 때문에 누군가 답변을 해주길 바랍니다.
.xlsx
나는 (다른 사람들에 의해) 정기적으로 업데이트되는 온라인 Excel 파일( )을 가지고 있습니다 . 이 Excel 시트를 처리하기 위해 스크립트를 작성하고 이를 cronjob으로 설정하고 싶습니다. 하지만 이렇게 하려면 .csv
세미콜론으로 구분된 열(따라서 a)이 있는 텍스트 파일로 변환해야 합니다. 불행히도 일부 열에는 쉼표가 있기 때문에 쉼표로 구분할 수 없습니다. 쉘에서 이 변환을 수행할 수 있습니까? Open Office가 설치되어 있고 GUI를 사용하여 이 작업을 수행할 수 있지만 명령줄에서 이 작업을 수행할 수 있는지 알고 싶습니다. 감사해요!
추신: 저는 Mac도 가지고 있습니다. Mac에서 작동하는 솔루션이 있다면 그것도 좋을 것 같습니다. :)
답변1
오픈오피스에 포함됨우노프프로그램은 명령줄에서 형식 변환을 수행합니다.
unoconv -f csv filename.xlsx
보다 복잡한 요구사항의 경우 다음을 사용하여 XLSX 파일을 구문 분석할 수 있습니다.Spreadsheet::XLSX
펄에서 또는openpyxl
파이썬에서. 예를 들어 워크시트를 세미콜론으로 구분된 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
답변2
https://github.com/dilshod/xlsx2csv
나에게 잘 작동합니다. Mac Book Pro SSD에서 약 85MB XLSX 파일을 변환하는 데 약 3분이 소요됩니다.
답변3
저는 펄을 사용하고 있어요xls2csv파일 xls
을 csv
.
그것도 적용되는지는 잘 모르겠습니다 xlsx
.
에 대한:
안타깝게도 일부 열에는 쉼표가 있으므로 쉼표로 구분할 수 없습니다.
이것이 참조가 소개된 이유입니다.
1,2,"data,data, more data"
답변4
나는 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 형식을 사용할 수 있습니다. PHPExcel 디렉토리에 있는 다양한 PHP 파일을 살펴보세요.