Hướng dẫn download xlsx file using javascript - tải xuống tệp xlsx bằng javascript

Tôi có một Frontend React và Java Server bằng khung Micronaut. Trong BaseController của khung Micronaut của tôi, tôi đang tạo một tệp XLSX và sau đó gửi phản hồi để nó được tải xuống khi được gọi từ mã Frontend.

Basecontroll

@Inject ExportService exportService

@Controller('/abc/api/v1')
@Slf4j
class BaseController implements CachingHandler, CommonUtils {
    @Post('/export/{name}')
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(MediaType.ALL)
    executeExporter(String name, @Nullable @Body LinkedHashMap payload) {
        def handler = { LinkedHashMap paramMap ->
            List paramMapList = paramMap.get("data") as List
            Byte[] resultBytes = exportService.exportToXLSX(paramMapList, getFileName(getLookupValue(name), paramMap.get("key") as String), true)
            log.info String.format("About to return XLSX file %s for %s",getFileName(getLookupValue(name), paramMap.get("key") as String), name)
            return resultBytes
        }
        def results = handler.call(payload)
        InputStream inputStream = new ByteArrayInputStream(results)
        return new StreamedFile(inputStream, getFileName(getLookupValue(name), payload["key"] as String))
    }
}

Dịch vụ xuất khẩu

Lưu ý: Sử dụng phương pháp chính của lớp này, tôi có thể tạo tệp TestReport.xlsx. XLSXExporter Lớp sử dụng thư viện Apache POI để tạo tệp XLSX.: Using the main method of this class I am able to create a TestReport.xlsx file. XLSXExporter class uses Apache POI library to generate XLSX file.

@Prototype
@Slf4j
class ExportService implements CommonUtils {

    Byte[] exportToXLSX(List response, String fileName, boolean isDelete) {
        def headers = []
        try {
            headers = response[0].keySet()
        } catch(Exception e) {
            e.printStackTrace()
        }
        Map params = [:]
        params[Constants.HEADERS] = headers
        params[Constants.DATA] = response

        XLSXExporter xlsxExporter = new XLSXExporter()
        boolean fileCreated = xlsxExporter.writeData(Constants.DEFAULT_SHEET_NAME, fileName, params)
        if (fileCreated) {
            Byte[] workbookContent = xlsxExporter.getFile(fileName, isDelete)
            return workbookContent
        } else {
            return new Byte[0]
        }
    }

    static void main(String[] args) {
        def param = []
        for (int i in 1..5) {
            def paramMap = [:]
            paramMap["key1"] = "data"+i
            paramMap["key2"] = "data"+i
            paramMap["key3"] = "data"+i
            param.add(paramMap)
        }
        ExportService exportService = new ExportService()
        Byte[] resultBytes = exportService.exportToXLSX(param, "TestReport.xlsx", false)

        /**
            I am able to create a proper TestReport.xlsx file using this main method
        **/
    }
}

Tôi đã kiểm tra API trên từ Postman và nó có thể tải xuống tệp XLSX.

Hướng dẫn download xlsx file using javascript - tải xuống tệp xlsx bằng javascript
Hướng dẫn download xlsx file using javascript - tải xuống tệp xlsx bằng javascript

Khi tôi gọi API xuất ở trên bằng ứng dụng của tôi (JavaScript), nó có thể tải xuống một tệp XLSX nhưng nó không mở.

Mã JavaScript để gọi API xuất khẩu

const exportData = (filteredRows, activity) => {
    let filename = "TestReport.xlsx";
    return axios({
        headers: {
            'Content-type': 'application/json'
         },
        accept:'application/x-www-form-urlencoded',
        url: '/abc/api/v1/export/'+ activity,
        method: 'post',
        data: {
            "key": "8575",
            "type":"userdetails",
            "data":filteredRows
        }
    }).then(resp => {
        var blob = resp.data;
        if(window.navigator.msSaveOrOpenBlob) {
            window.navigator.msSaveBlob(blob, filename);
        }
        else{
            var downloadLink = window.document.createElement('a');
            downloadLink.href = window.URL.createObjectURL(new Blob([blob], {type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}));
            downloadLink.download = filename;
            document.body.appendChild(downloadLink);
            downloadLink.click();
            document.body.removeChild(downloadLink);
           }
    });
}

Hướng dẫn download xlsx file using javascript - tải xuống tệp xlsx bằng javascript
Hướng dẫn download xlsx file using javascript - tải xuống tệp xlsx bằng javascript
Khi tôi nhấp vào Có trên hộp thoại trên, tôi nhận được lỗi dưới đây và không có gì được hiển thị so với tệp được tải xuống từ Postman.
Hướng dẫn download xlsx file using javascript - tải xuống tệp xlsx bằng javascript

Cách nhập và xuất Excel XLSX bằng JavaScript

Thiết lập dự án bảng tính JavaScript.

const url = window.URL.createObjectURL(
        new Blob([response.data], {
          type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
        })
      );
const link = document.createElement("a");
link.href = url;
link.setAttribute("download", filename);
 document.body.appendChild(link);
 link.click();
 link.remove();

Để giải quyết vấn đề về tệp XLSX tải xuống JavaScript, chúng tôi đã xem xét nhiều trường hợp.

Làm cách nào để tải xuống tệp XLSX bằng JavaScript?

JavaScript Tải xuống tệp XLSX

  • const url = cửa sổ. URL. createdObjecturl (
  • Blob mới ([Phản hồi. Dữ liệu], {
  • Loại: Ứng dụng/VND.openxmlformats officedocument.spreadsheetml.sheet,
  • })
  • );
  • const link = tài liệu. createdeLement (Hồi A);
  • liên kết. href = url;
  • liên kết. setAttribution (Tải xuống, tên tệp);

Làm cách nào để tải xuống một tệp xlsx?

Chọn Tệp> Lưu dưới dạng> Tải xuống một bản sao. Nếu Excel yêu cầu mở hay lưu sổ làm việc, hãy chọn Lưu. Lưu ý: Nếu bạn chọn Mở thay vì lưu, sổ làm việc sẽ mở trong chế độ xem được bảo vệ.

Làm cách nào để lưu tệp .xlsx dưới dạng blob?

var blob = new blob ([data], {type: Ứng dụng/vnd. OpenXmlFormatS Officationocument. Bảng tính // lập trình tạo một liên kết và nhấp vào nó: Var A = Document.

Làm cách nào để tải xuống một tệp excel trong html?

Ví dụ: Tải xuống bảng HTML ở định dạng Excel (. CSV)

  • Bước 1: Tạo bảng HTML.
  • Bước 2: Thêm thuộc tính CSS để tạo kiểu bảng.
  • Bước 3: Tạo nút tải xuống.
  • Bước 4: Thực hiện chức năng JavaScript để tải xuống bảng HTML trong tệp CSV.
  • Bước 5: Gọi chức năng JavaScript bằng sự kiện Onclick.

Làm thế nào để bạn xuất excel bằng JavaScript?

Cách nhập và xuất Excel XLSX bằng JavaScript

  • Thiết lập dự án bảng tính JavaScript.
  • Thêm mã nhập excel.
  • Thêm dữ liệu vào tệp Excel đã nhập.
  • Thêm một tia lửa.
  • Thêm mã xuất excel.

Làm thế nào tìm nạp dữ liệu từ Excel bằng cách sử dụng JavaScript?

JavaScript Excel - Nhập dữ liệu từ Excel Tệp Excel được đọc vào đối tượng Uint8array, sau đó được chuyển đến phương thức tải được hiển thị bởi thư viện Excel. Khi bảng tính được tải vào đối tượng thư viện Excel, chúng ta có thể đọc từng giá trị ô và xây dựng một mảng JSON sẽ được sử dụng làm nguồn dữ liệu IgGRid.

Làm cách nào để tải xuống bảng tính từ một trang web?

Tải xuống bảng tính Excel từ một liên kết trong một trang web không phức tạp: chỉ cần nhấp vào liên kết và trình duyệt lưu tệp được liên kết vào máy tính. Tuy nhiên, bạn có thể hợp lý hóa quy trình để máy tính tự động mở bảng tính trong chương trình thích hợp sau khi tải xuống hoàn tất.

Làm cách nào để tải xuống Excel dưới dạng XLS?

Chọn Tệp • Chọn Lưu dưới dạng • Nhấp vào Lưu dưới dạng Kiểu Hộp thả xuống Mũi tên • Chọn Microsoft Excel Workbook \ • Nhập tên tệp ________. XLS • Chọn OK.

Làm thế nào để bạn tự động tải xuống một tệp từ một trang web bằng Excel?

Nhập danh sách tệp sẽ được tải xuống từ Internet và tất cả các URL tương ứng với các tệp đó vào bảng Excel. Tải xuống thông tin:

  • Chúng tôi phải thu thập và ghi nhật ký liên kết URL cho mỗi tệp trong một số tài liệu.
  • Duyệt từng trang web và.
  • Nhấp vào tùy chọn Tệp tải xuống được cung cấp trong mỗi trang web này.

Làm cách nào để xuất dữ liệu blob trong excel?

Nhấp vào Bắt đầu Nhiệm vụ mới - Xuất LOB sang Tệp Hộp thoại tại Hộp thoại Nhiệm vụ.

  • Sau đó hiển thị thuật sĩ. Cấu hình.
  • Export.
  • Sau đó, bạn có thể thấy kết quả xuất khẩu.
  • Thông tin thêm về Mylobeditor - công cụ để xuất khẩu Batch MYSQL BLOB sang các tệp Excel. Thử nghiệm miễn phí 30 ngày US $ 75.0.

Làm cách nào để tải xuống một tệp xlsx?

Để thực hiện điều này: Chọn Tệp> Lưu dưới dạng> Tải xuống một bản sao.Nếu Excel yêu cầu mở hay lưu sổ làm việc, hãy chọn Lưu.Lưu ý: Nếu bạn chọn Mở thay vì lưu, sổ làm việc sẽ mở trong chế độ xem được bảo vệ.Select File > Save As > Download a Copy. If Excel asks whether to open or save the workbook, select Save. Note: If you select Open instead of Save, the workbook will open in Protected View.

Làm cách nào để tải xuống một tệp excel bằng React JS?

Để thực hiện điều này, hãy thực hiện các bước sau:..
Tạo dự án React JS ..
Cài đặt các mô -đun nút để xuất Excel ..
Tạo thành phần xuất excel ..
Tạo dữ liệu JSON ..
Bao gồm thành phần xuất excel trong tệp app.js ..
Tải xuống dữ liệu Excel ..

Làm cách nào để tải xuống tệp excel bằng jQuery?

Tải xuống tệp Excel bằng AJAX trong JQuery bên trong chức năng tải xuống JavaScript, URL của tệp được truyền dưới dạng tham số cho chức năng JQuery AJAX.Bên trong hàm JQuery Ajax, sử dụng cuộc gọi XMLHTTPREQUEST (XHR), tệp PDF được tải xuống dưới dạng mảng byte (dữ liệu nhị phân).Inside the DownloadFile JavaScript function, the URL of the File is passed as parameter to the jQuery AJAX function. Inside the jQuery AJAX function, using the XmlHttpRequest (XHR) call, the PDF file is downloaded as Byte Array (Binary Data).