第一步:解析excel文件为字符串
这个需要借助 spire.xls
来实现转换
spire下载地址:https://www.e-iceblue.com/Download/xls-for-java.html
service层代码
package com.zhangzemin.modules.excel_to_html;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
import com.spire.xls.core.spreadsheet.HTMLOptions;
import com.zhangzemin.bean.Person;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
/**
* @author zhangzemin
* @date 2020/3/24 10:07
*/
@IocBean
public class ExcelToHtmlService {
@Inject
private Dao dao;
public String excelToHtml(String personId) {
try {
Person person = dao.fetch(Person.class, Cnd.where("id", "=", personId));
byte[] mb = person.getMb();
InputStream is = new ByteArrayInputStream(mb);
ByteArrayOutputStream os = new ByteArrayOutputStream();
Workbook wb = new Workbook();
wb.loadFromStream(is);
Worksheet sheet = wb.getWorksheets().get(0);
sheet.saveToHtml(os, HTMLOptions.Default);
byte[] buf = os.toByteArray();
String str = new String(buf, "UTF-8");
return str;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return null;
}
}
control层代码
@At("/excelToHtml")
@Ok("raw:html")
public String excelToHtml(@Param("id")String personId){
return excelToHtmlService.excelToHtml(personId);
}
前端代码
<body>
<input type="hidden" value="${obj.id}" id="personId">
<div id="mb"></div>
<script>
$.ajax({
url:"excelToHtml",
data:{
id:$("#personId").val()},
dataType:"html",
success:function(res){
$("#mb").html(res);
}
});
</script>
</body>