导出Excel
在util中增加
ExcelUtil.java
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class ExcelUtil {
/**
* 导出Excel
* @param sheetName sheet名称
* @param title 标题
* @param values 内容
* @param wb HSSFWorkbook对象
* @return
*/
public static HSSFWorkbook getHSSFWorkbook(String sheetName,String []title,String [][]values, HSSFWorkbook wb){
// 第一步,创建一个HSSFWorkbook,对应一个Excel文件
if(wb == null){
wb = new HSSFWorkbook();
}
// 第二步,在workbook中添加一个sheet,对应Excel文件中的sheet
HSSFSheet sheet = wb.createSheet(sheetName);
// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制
HSSFRow row = sheet.createRow(0);
// 第四步,创建单元格,并设置值表头 设置表头居中
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
//声明列对象
HSSFCell cell = null;
//创建标题
for(int i=0;i<title.length;i++){
cell = row.createCell(i);
cell.setCellValue(title[i]);
cell.setCellStyle(style);
}
//创建内容
for(int i=0;i<values.length;i++){
row = sheet.createRow(i + 1);
for(int j=0;j<values[i].length;j++){
//将内容按顺序赋给对应的列对象
row.createCell(j).setCellValue(values[i][j]);
}
}
return wb;
}
}
ContactController.java
/**
* 导出报表
*
* @return
*/
@RequestMapping(value = "/export")
@ResponseBody
public String export(HttpServletRequest request, HttpServletResponse response) throws Exception {
//获取数据
List<ContactDo> list = contactService.selectAll();
//excel标题
//根据sql语句查询的字段名添加
String[] title = {"所属客户", "姓名", "部门", "是否主联系人","电话号码1","电话号码2","传真","手机","邮箱",
"QQ","阿里旺旺","备注"};
//excel文件名
String fileName = "联系人信息" + System.currentTimeMillis() + ".xls";
//sheet名
String sheetName = "联系人信息";
String [][] content = new String[list.size()][12];
//根据字段名添加数据(String类型)
for (int i = 0; i < list.size(); i++) {
content[i] = new String[title.length];
ContactDo obj=list.get(i);
content[i][0] = obj.getCustomerId().toString();
content[i][1] = obj.getName();
content[i][2] = obj.getDept();
content[i][3] = obj.getIsMainContact().toString();
content[i][4] = obj.getPhone();
content[i][5] = obj.getPhone2();
content[i][6] = obj.getFax();
content[i][7] = obj.getMobile();
content[i][8] = obj.getEmail();
content[i][9] = obj.getQq();
content[i][10] = obj.getAliwangwang();
content[i][11] = obj.getMemo();
}
//创建HSSFWorkbook
HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook(sheetName, title, content, null);
//响应到客户端,可以自己选择保存路径
try {
FileOutputStream out = new FileOutputStream("E:\\new\\"+fileName);
wb.write(out);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
return "ok";
}
Contact_list.jsp
<a href="javascript(0)" class="easyui-linkbutton" iconCls="icon-hamburg-down" plain="true" onclick="exportExcel()">导出Excel</a>
Contact_list.js
//导出Excel形式
function exportExcel(){
window.location.href=rootPath + "/contact/contact/export";
}
ContactService.java
查询所有的数据
public interface ContactService {
List<ContactDo> selectAll();
}
ContactServiceImpl.java
@Service
@Transactional(propagation= Propagation.REQUIRED)
public class ContactServiceImpl implements ContactService {
@Override
public List<ContactDo> selectAll() {
return contactDOMapper.selectAll();
}
}
ContactDOMapper.java
public interface ContactDOMapper extends BaseMapper {
List<ContactDo> selectAll();
}
ContactDOMapper.xml
<select id="selectAll" resultMap="ContactResultMap">
select
<!--相当于*-->
<include refid="Base_Column_List"/>
from cu_contact
</select>
最终实现的效果