Cách chuyển đổi tệp XLS thành CSV trong Dòng lệnh [Linux]
Việc chuyển đổi Microsoft Excel (tệp XLS) thành tệp Comma Separated (CSV) tương đối dễ dàng trong khi sử dụng sản phẩm Office, nhưng nó có thể là một công việc tẻ nhạt đối với các lập trình viên để làm điều đó trong dòng lệnh. Tình huống có thể đến khi bạn có một tệp XLS và bạn cần điền vào cơ sở dữ liệu từ nó sau khi định dạng dữ liệu. Chuyển đổi XLS thành CSV là cách lý tưởng ở đây vì CSV là định dạng có thể dễ dàng thao tác bằng bất kỳ ngôn ngữ nào, có thể là Shell, Perl, Ruby, Python hoặc Java. Trong bài này, chúng ta sẽ thấy những cách tốt nhất để chuyển đổi tập tin XLS thành CSV và chúng ta cũng sẽ thảo luận về các ưu và nhược điểm của việc sử dụng các phương thức này.
catdoc (trong C)
Công cụ dòng lệnh đầu tiên mà chúng ta sẽ nói đến là catdoc. Công cụ này được viết bằng C bởi VB Vagner.
1.1 Cách cài đặt:
Tải xuống công cụ từ đây. Truy cập thư mục tải xuống của bạn và hủy nó. Bạn có thể sử dụng các lệnh sau (trong trường hợp bạn đang gặp vấn đề):
gunzip catdoc-0.94.2.tar.gz tar xvf catdoc-0.94.2.tar
Bây giờ chúng ta có một thư mục catdoc-0.94.2 . Vào bên trong thư mục này và chạy các lệnh sau để cài đặt nó:
./configure thực hiện cài đặt
Việc cài đặt là một quá trình dễ dàng và bạn không nên gặp phải bất kỳ vấn đề nào ở đây.
1.2 Cách sử dụng:
Có một số tùy chọn để chạy lệnh. Tôi sẽ nói với các tùy chọn hoạt động tốt nhất cho việc chuyển đổi Microsoft Excel:
xls2csv -x "Path_of_Your_XLS_File" -s cp1252 -d 8859-1> "Path_of_Your_CSV_File"
Lưu ý tùy chọn “ -s ” và “ -d ” (viết tắt của nguồn và đích). Các tùy chọn này được sử dụng để chỉ định mã hóa ký tự nào được sử dụng trong tệp nguồn và mã hóa ký tự cho tệp đích sẽ là gì. Ở đây tôi đã sử dụng cpl1252 đó là mã hóa ký tự Microsoft và 8859-1 được sử dụng cho mã hóa ký tự Tây Âu. Bạn có thể sử dụng các tùy chọn khác có sẵn bằng cách sử dụng lệnh trợ giúp.
xls2csv --help
1.3 Ưu điểm và nhược điểm:
Ưu điểm : Cài đặt thẳng về phía trước
Nhược điểm : Không có chuyển đổi chọn lọc trong kịch bản nhiều trang tính, nó bao gồm tất cả các trang có trong tệp xls (một cách giải quyết là chỉ rõ một chân trang trong mỗi trang và sau đó sử dụng tùy chọn -b trong lệnh), các vấn đề với vài ký tự Châu Âu, vấn đề với các trường ngày (các trường ngày bị rối tung lên lần lớn), lộn xộn với dấu ngoặc kép.
xls2csv (trong Perl)
Công cụ thứ hai mà chúng ta sẽ nói đến là một tập lệnh Perl xls2csv được viết bởi Ken Prows trong Perl.
2.1 Cách cài đặt:
Tải xuống tập lệnh tại đây. Gunzip và tar nó như chúng tôi đã làm trong phần trước và đi vào thư mục trích xuất và sử dụng các lệnh sau đây để cài đặt nó:
perl Makefile.PL thực hiện kiểm tra make make install
Hãy nhớ kịch bản Perl này sử dụng một số mô-đun Perl khác:
Locale :: Recode Unicode :: Bảng tính bản đồ :: ParseExcel Text :: CSV_XS
Trong khi cài đặt xls2csv, nó sẽ cho lỗi rằng các mô-đun perl được đề cập chưa được cài đặt. Nó sẽ yêu cầu bạn tải xuống các mô-đun. Tải xuống và cài đặt các mô-đun này khi được yêu cầu. Tất cả các cài đặt mô-đun này yêu cầu quyền root. Nếu bạn không có quyền truy cập root, thì bạn nên làm theo hướng dẫn được đưa ra ở đây để cài đặt một mô-đun Perl.
2.2 Cách sử dụng:
Lệnh sau có thể được sử dụng để chuyển đổi Microsoft excel thành csv:
xls2csv -x "Path_of_Your_XLS_File" -b cp1252 -w WorkSheetName -c "Path_of_Your_CSV_File" -a 8859-1
Tùy chọn x và c (có nghĩa là xls và csv) được sử dụng để xác định các tệp đầu vào và đầu ra trong đó b và a (có nghĩa là trước và sau) được sử dụng để chỉ định mã hóa ký tự tương ứng. Chúng tôi đã sử dụng cùng một mã hóa ký tự như trong công cụ trước đó.
2.3 Ưu điểm và nhược điểm:
Ưu điểm : Tốt với các trường chuyển đổi ký tự và các trường ngày tháng ở châu Âu, hỗ trợ chuyển đổi nhiều trang tính có chọn lọc,
Nhược điểm : Một số mô-đun Perl cần phải được cài đặt, tế bào đầu tiên không được để trống (nếu không nó bỏ qua toàn bộ hàng), messes với dấu ngoặc kép
Có vài cách khác nữa. Một số kịch bản trong Python và Java cũng có sẵn để sử dụng nhưng chúng không tốt bằng hai kịch bản được thảo luận ở đây. Tôi hy vọng bài viết giải quyết vấn đề của bạn. Câu hỏi và đề xuất luôn được hoan nghênh. Chúc mừng :)