2011-11-16 40 views
7

Có cách nào để xuất dữ liệu JSON sang CSV/Excel mà không có bất kỳ tương tác nào với phía máy chủ không? Chỉ sử dụng Javascript? hoặc Flash? Tôi hiện đang sử dụng ZeroClipboard để sao chép giá trị vào clipboard nhưng tôi muốn mở trực tiếp giá trị được tạo ra vào Excel từ trình duyệt (FF, Chrome, IE, v.v ...).Xuất Javascript hoặc Flash sang CSV/Excel

Thx.

+1

xem http://stackoverflow.com/questions/3665115/create-a-file-in-memory-for-user-to-download-not-through-server –

Trả lời

8

Viễn và xa, xuất khẩu dễ dàng nhất, dễ dàng nhất từ ​​bảng sang Excel là Jquery DataTables Table Tools plugin. Bạn sẽ có được một mạng lưới mà sắp xếp, lọc, đơn đặt hàng, và các trang dữ liệu của bạn, và chỉ với một vài dòng thêm mã và hai tập tin nhỏ bao gồm, bạn sẽ có được xuất khẩu sang Excel, PDF, CSV, để vào clipboard và đến máy in .

Đây là tất cả các mã đó là yêu cầu:

$(document).ready(function() { 
    $('#example').dataTable({ 
     "sDom": 'T<"clear">lfrtip', 
     "oTableTools": { 
     "sSwfPath": "/swf/copy_cvs_xls_pdf.swf" 
     } 
    }); 
}); 

Vì vậy, nhanh chóng triển khai, không hạn chế trình duyệt, không có ngôn ngữ server-side yêu cầu, và hầu hết tất cả đều rất dễ hiểu. Đó là một chiến thắng-thắng. Tuy nhiên, điều duy nhất có giới hạn là định dạng cột nghiêm ngặt.

+0

Có cách nào để có tùy chọn mở khi xuất không? lạ nhưng tôi chỉ có thể lưu tài liệu excel – ic3

+0

Có thể nhận được tính ưu việt xuất khẩu của TableTools mà không cần thêm bất kỳ tính năng DataTables nào không? Ý tôi là, tôi đã có một bảng HTML với việc sắp xếp và lọc và nhiều thứ khác (sử dụng các phương thức khác, không phải là DataTables), bây giờ tôi chỉ cần các tính năng xuất khẩu ... –

+0

Tôi đang cố gắng sử dụng TableTools, nhưng tôi muốn sử dụng các nút của riêng mình thay vì sử dụng các nút swf. Có thể không? – Firnas

2

Dường như không phải là cách dễ dàng để thực hiện nó phía máy khách trên tất cả các trình duyệt và kích thước tệp. Tất cả các giải pháp dường như sử dụng một trong các cách sau:

  • plugin Flash (ví dụ: Downloadify): lỗi và không di động URL
  • dữ liệu tương thích: hỗ trợ và kích thước hạn chế IE hạn chế
  • HTML5: Tải về phương pháp không được chuẩn hóa trên các trình duyệt.

Tùy thuộc vào trường hợp sử dụng của bạn, bạn có thể thoát khỏi một trong những điều trên. Dưới đây là một số bài viết khác trên SO với nhiều chi tiết hơn.

Lưu ý rằng phần này của câu trả lời từ Ramandeep Singh là không chính xác:

Vì vậy, nhanh chóng triển khai, không hạn chế trình duyệt, không có server-side ngôn ngữ bắt buộc và hầu hết tất cả đều rất dễ hiểu.

DataTables không sử dụng plugin flash nếu bạn xem mã. Nó sẽ không hoạt động trên các trình duyệt di động (iOS, các thiết bị Android gần đây mà không có rễ, Windows 8 RT không có hack hoặc quá trình phê duyệt MSFT). Đây cũng là một bài đăng từ trang web của họ: http://www.datatables.net/forums/discussion/7563/export-to-csvpdf-without-tabletools/p1

Các vấn đề liên quan