Home Web Front-end JS Tutorial Detailed explanation of ajax implementation of excel report export

Detailed explanation of ajax implementation of excel report export

Jul 16, 2020 pm 05:37 PM
ajax excel Report export

Detailed explanation of ajax implementation of excel report export

Use ajax to export excel reports [solve the problem of garbled characters], for your reference, the specific content is as follows

Background

I encountered a scenario in the project where I needed to export an excel report. Because token verification is required, the a tag cannot be used; because the page is complex, form submission cannot be used. It is initially considered to use ajax on the front end, return the stream on the back end, and define the specified header.

Related learning recommendations: javascript video tutorial

First edition

Main code

Front-end

Use jquery's ajax

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

var queryParams = {"test":"xxx"};

var url = "xxx";

$.ajax({

 type : "POST", //提交方式

 url : url,//路径

 contentType: "application/json",

 data: JSON.stringify(queryParams),

 beforeSend: function (request) {

  request.setRequestHeader("Authorization", "xxx");

 },

 success : function(result) {

  const blob = new Blob([result], {type:"application/vnd.ms-excel"});

  if(blob.size < 1) {

   alert(&#39;导出失败,导出的内容为空!&#39;);

   return

  }

  if(window.navigator.msSaveOrOpenBlob) {

   navigator.msSaveOrOpenBlob(blob, &#39;test.xls&#39;)

  } else {

   const aLink = document.createElement(&#39;a&#39;);

   aLink.style.display = &#39;none&#39;;

   aLink.href = window.URL.createObjectURL(blob);

   aLink.download = &#39;test.xls&#39;;

   document.body.appendChild(aLink);

   aLink.click();

   document.body.removeChild(aLink);

  }

 }

});

Copy after login

Back-end

Use easypoi (please ask yourself how to use easypoi Baidu)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

import cn.afterturn.easypoi.excel.ExcelExportUtil;

import cn.afterturn.easypoi.excel.entity.ExportParams;

 

@PostMapping(value = "/download")

public void downloadList(@RequestBody Objct obj, HttpServletResponse response) {

 

 ......

 

 List<Custom> excelList = new ArrayList<>();

  

   // excel总体设置

   ExportParams exportParams = new ExportParams();

   // 指定sheet名字

   exportParams.setSheetName("test");

   Workbook workbook = ExcelExportUtil.exportExcel(exportParams, Custom.class, excelList);

  

   response.setContentType("application/vnd.ms-excel");

   response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("test", "utf-8") + ".xls");

   OutputStream outputStream = response.getOutputStream();

   workbook.write(outputStream);

   outputStream.flush();

   outputStream.close();

    

 ......

  

}

Copy after login

Test results

excel can be exported normally, but the downloaded excel is all garbled. After searching for answers, I sorted out the possible reasons:

1. The character set is not set on the back end, or the character set is set uniformly in the filter of the spring framework;
2. The front end The character set encoding is not set on the page;
3. You need to add request.responseType = "arraybuffer" in ajax;

After continuous testing, mine should be caused by the third point. But it still doesn't work after adding it in jquery ajax, and the garbled code problem cannot be solved.

Second Edition

Main code

Front end, using native ajax. The backend is unchanged.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

var xhr = new XMLHttpRequest();

xhr.responseType = "arraybuffer";

xhr.open("POST", url, true);

xhr.onload = function () {

 const blob = new Blob([this.response], {type:"application/vnd.ms-excel"});

 if(blob.size < 1) {

  alert(&#39;导出失败,导出的内容为空!&#39;);

  return;

 }

 if(window.navigator.msSaveOrOpenBlob) {

  navigator.msSaveOrOpenBlob(blob, &#39;test.xls&#39;)

 } else {

  const aLink = document.createElement(&#39;a&#39;);

  aLink.style.display = &#39;none&#39;;

  aLink.href = window.URL.createObjectURL(blob);

  aLink.download = &#39;testxls&#39;;

  document.body.appendChild(aLink);

  aLink.click();

  document.body.removeChild(aLink);

  return;

 }

}

xhr.setRequestHeader("Authorization", "xxx");

xhr.setRequestHeader("Content-Type", "application/json");

xhr.send(JSON.stringify(queryParams));

Copy after login

Test results

The downloaded excel is no longer garbled, and the use of "arraybuffer" in native ajax is effective.

Summary

"arraybuffer" This parameter causes excel to export garbled characters. The setting in native ajax is valid, but it has not yet been found to be effective in jquery's ajax. The way.

The above is the detailed content of Detailed explanation of ajax implementation of excel report export. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

What should I do if the frame line disappears when printing in Excel? What should I do if the frame line disappears when printing in Excel? Mar 21, 2024 am 09:50 AM

If when opening a file that needs to be printed, we will find that the table frame line has disappeared for some reason in the print preview. When encountering such a situation, we must deal with it in time. If this also appears in your print file If you have questions like this, then join the editor to learn the following course: What should I do if the frame line disappears when printing a table in Excel? 1. Open a file that needs to be printed, as shown in the figure below. 2. Select all required content areas, as shown in the figure below. 3. Right-click the mouse and select the &quot;Format Cells&quot; option, as shown in the figure below. 4. Click the “Border” option at the top of the window, as shown in the figure below. 5. Select the thin solid line pattern in the line style on the left, as shown in the figure below. 6. Select &quot;Outer Border&quot;

How to filter more than 3 keywords at the same time in excel How to filter more than 3 keywords at the same time in excel Mar 21, 2024 pm 03:16 PM

Excel is often used to process data in daily office work, and it is often necessary to use the &quot;filter&quot; function. When we choose to perform &quot;filtering&quot; in Excel, we can only filter up to two conditions for the same column. So, do you know how to filter more than 3 keywords at the same time in Excel? Next, let me demonstrate it to you. The first method is to gradually add the conditions to the filter. If you want to filter out three qualifying details at the same time, you first need to filter out one of them step by step. At the beginning, you can first filter out employees with the surname &quot;Wang&quot; based on the conditions. Then click [OK], and then check [Add current selection to filter] in the filter results. The steps are as follows. Similarly, perform filtering separately again

How to change excel table compatibility mode to normal mode How to change excel table compatibility mode to normal mode Mar 20, 2024 pm 08:01 PM

In our daily work and study, we copy Excel files from others, open them to add content or re-edit them, and then save them. Sometimes a compatibility check dialog box will appear, which is very troublesome. I don’t know Excel software. , can it be changed to normal mode? So below, the editor will bring you detailed steps to solve this problem, let us learn together. Finally, be sure to remember to save it. 1. Open a worksheet and display an additional compatibility mode in the name of the worksheet, as shown in the figure. 2. In this worksheet, after modifying the content and saving it, the dialog box of the compatibility checker always pops up. It is very troublesome to see this page, as shown in the figure. 3. Click the Office button, click Save As, and then

How to set superscript in excel How to set superscript in excel Mar 20, 2024 pm 04:30 PM

When processing data, sometimes we encounter data that contains various symbols such as multiples, temperatures, etc. Do you know how to set superscripts in Excel? When we use Excel to process data, if we do not set superscripts, it will make it more troublesome to enter a lot of our data. Today, the editor will bring you the specific setting method of excel superscript. 1. First, let us open the Microsoft Office Excel document on the desktop and select the text that needs to be modified into superscript, as shown in the figure. 2. Then, right-click and select the &quot;Format Cells&quot; option in the menu that appears after clicking, as shown in the figure. 3. Next, in the “Format Cells” dialog box that pops up automatically

How to use the iif function in excel How to use the iif function in excel Mar 20, 2024 pm 06:10 PM

Most users use Excel to process table data. In fact, Excel also has a VBA program. Apart from experts, not many users have used this function. The iif function is often used when writing in VBA. It is actually the same as if The functions of the functions are similar. Let me introduce to you the usage of the iif function. There are iif functions in SQL statements and VBA code in Excel. The iif function is similar to the IF function in the excel worksheet. It performs true and false value judgment and returns different results based on the logically calculated true and false values. IF function usage is (condition, yes, no). IF statement and IIF function in VBA. The former IF statement is a control statement that can execute different statements according to conditions. The latter

Where to set excel reading mode Where to set excel reading mode Mar 21, 2024 am 08:40 AM

In the study of software, we are accustomed to using excel, not only because it is convenient, but also because it can meet a variety of formats needed in actual work, and excel is very flexible to use, and there is a mode that is convenient for reading. Today I brought For everyone: where to set the excel reading mode. 1. Turn on the computer, then open the Excel application and find the target data. 2. There are two ways to set the reading mode in Excel. The first one: In Excel, there are a large number of convenient processing methods distributed in the Excel layout. In the lower right corner of Excel, there is a shortcut to set the reading mode. Find the pattern of the cross mark and click it to enter the reading mode. There is a small three-dimensional mark on the right side of the cross mark.

How to insert excel icons into PPT slides How to insert excel icons into PPT slides Mar 26, 2024 pm 05:40 PM

1. Open the PPT and turn the page to the page where you need to insert the excel icon. Click the Insert tab. 2. Click [Object]. 3. The following dialog box will pop up. 4. Click [Create from file] and click [Browse]. 5. Select the excel table to be inserted. 6. Click OK and the following page will pop up. 7. Check [Show as icon]. 8. Click OK.

How to cancel the limit if the input value in excel is illegal How to cancel the limit if the input value in excel is illegal Mar 20, 2024 pm 02:51 PM

We use Microsoft Office Excel in various tasks such as processing data, tables, charts, etc., but when using Microsoft Office Excel, sometimes we will find that we cannot input content and prompt us that &quot;the input value is illegal&quot;. Do you know how to cancel the limit on illegal input values ​​in Excel? Let me demonstrate it to you. First, let's take a closer look at the high-definition pictures of the crime scene. When we enter content in cell C1, just press the Enter key and you will see the above prompt. 2. After canceling, return to the spreadsheet page and select cell C1. At this time, some people may find that there is a small drop-down triangle symbol in the lower right corner of cell C1, as shown in the picture. In fact, the problem is

See all articles