后端返回的文件流,vue在线预览excel---待完善

项目场景:

上传excel文件后,需实现预览功能,后端返回的文件流,需要实现预览功能


解决方案:

preview() {
	const _this = this;
    _this.$http({ 
    	method: "get",
		responseType: "arraybuffer", // 预览arraybuffer,下载:blob
		url:"接口地址",
    })
    .then((res) => {
    	console.log(res); // 图一
    	let data = new Uint8Array(res.data); //
        let workbook = XLSX.read(data, { type: "array" });
        let sheetNames = workbook.SheetNames; // 工作表名称集合
        this.workbook = workbook;
        this.cardActive = sheetNames[0];
        this.getTable(sheetNames[0]);
     })
     .catch((error) => {
        this.previewFile = false;
        this.$message.error("预览失败");
     });
},
getTable(sheetName) {
	var worksheet = this.workbook.Sheets[sheetName];
    this.tableau = XLSX.utils.sheet_to_json(worksheet, {
    	header: 1,
    	defval: "",
    }); // 直接v-for循环
},

图一:
图一
图二
在这里插入图片描述

html部分

<el-dialog :visible.sync="previewFile" width="1000px">
  <div id="table">
    <table border="1" v-if="tableau" style="border-collapse: collapse">
      <tr v-for="(item, index) in tableau" :key="index">
        <td v-for="(item1, index1) in item" :key="index1">{{ item1 }}</td>
      </tr>
    </table>
  </div>
</el-dialog>
要在后端预览Minio返回Excel文件下载链接,您可以使用像Apache POI这样的Java库。Apache POI是一个用于读写Microsoft Office格式文件(例如Excel、Word和PowerPoint)的开源Java库。您可以使用它来读取Excel文件内容,并将其呈现为HTML格式,以便在网页上进行预览。 以下是一个简单的示例,演示如何使用Apache POI和Spring Boot将Excel文件转换为HTML格式: ```java @GetMapping("/preview") public String previewExcel(@RequestParam("url") String url, Model model) throws IOException { // Create a new HTTP client CloseableHttpClient httpClient = HttpClients.createDefault(); // Send a GET request to Minio to download the Excel file HttpGet httpGet = new HttpGet(url); CloseableHttpResponse response = httpClient.execute(httpGet); InputStream inputStream = response.getEntity().getContent(); // Use Apache POI to read the Excel file and convert it to HTML Workbook workbook = new XSSFWorkbook(inputStream); ExcelToHtmlConverter converter = new ExcelToHtmlConverter(DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument()); converter.processWorkbook(workbook); // Get the HTML representation of the Excel file Document htmlDocument = converter.getDocument(); StringWriter stringWriter = new StringWriter(); Transformer transformer = TransformerFactory.newInstance().newTransformer(); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty(OutputKeys.METHOD, "html"); transformer.transform(new DOMSource(htmlDocument), new StreamResult(stringWriter)); String html = stringWriter.toString(); // Add the HTML to the model and return the view name model.addAttribute("html", html); return "excel-preview"; } ``` 在此示例中,我们使用Apache HttpClient库发送GET请求来下载Excel文件。然后,我们使用Apache POI将Excel文件转换为HTML,并使用Spring Boot将HTML呈现为视图。请注意,这只是一个简单的示例,并且您需要根据您的具体需求进行适当的调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值