response.reset();
response.addHeader("Content-Type", "text/csv; charset=utf-8");
response.addHeader("Content-Disposition", "attachment; filename=test.csv");
//输出表头
out.println("已认证未绑定微信数");
out.println("会员ID,姓名,手机号,邮箱,企业ID,企业名称");
response.reset();
response.addHeader("Content-Type", "application/vnd.ms-excel; charset=utf-8");
response.addHeader("Content-Disposition", "attachment; filename=test.xls");
//输出表头
out.println("已认证未绑定微信数");
out.println("会员ID,姓名,手机号,邮箱,企业ID,企业名称");
求怎么实现呀
可在java中导入free spire.xls for java的包,然后写入数组数据,导出成Excel文件,如下方法:
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
public class InsertArray {
public static void main(String[] args) {
//创建Workbook对象
Workbook wb = new Workbook();
//获取第一张工作表
Worksheet sheet = wb.getWorksheets().get(0);
//定义一维数据
String[] oneDimensionalArray = new String[]{"苹果", "梨子", "葡萄", "香蕉"};
//将数组从指定单个格开始写入工作表,true表示纵向写入,设置为false为横向写入
sheet.insertArray(oneDimensionalArray, 1, 1, true);
//定义二维数组
String[][] twoDimensionalArray = new String[][]{
{"姓名", "年龄", "性别", "学历"},
{"小张", "25", "男", "本科"},
{"小王", "24", "男", "本科"},
{"小李", "26", "女", "本科"}
};
//从指定单元格开始写入二维数组到工作表
sheet.insertArray(twoDimensionalArray, 1, 3);
//保存文档
wb.saveToFile("InsertArrays.xlsx", ExcelVersion.Version2016);
}
}
效果图:
参考这个https://poi.apache.org/components/spreadsheet/quick-guide.html POI相关库
我用的easypoi
这个是测试demo 导出csv
<dependency>
<groupId>net.sourceforge.javacsv</groupId>
<artifactId>javacsv</artifactId>
<version>2.0</version>
</dependency>
ServletOutputStream out = response.getOutputStream();
response.setCharacterEncoding(request.getCharacterEncoding());
response.setContentType("application/octet-stream");
String fileName = new String("测试.csv".getBytes("UTF-8"), "ISO-8859-1");
response.setHeader("Content-Disposition", "attachment; filename="+fileName);
CsvWriter write = new CsvWriter(out, ',', Charset.forName("utf-8"));
write.setForceQualifier(true);
write.writeRecord(new String[] {"key","value" });
write.writeRecord(
new String[] {"a1", "b1"}
);
write.writeRecord(
new String[] {"a2", "b2"}
);
write.writeRecord(
new String[] {"a3", "b3"}
);
write.flush();
write.close();
response.flushBuffer();