使用poi从服务器保存数据到本地
2013-01-21 16:25
417 查看
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
/**
* 用户信息导出类
*
* @author 寇航艇
*
*/
public class UseServlet extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
doPost(request, response);
}
@SuppressWarnings("unchecked")
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType("text/html");
// 封装页面的参数
UserInfo bo = new UserInfo();
// 调用业务层
ServletContext servletContext = this.getServletContext();
WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);
IUsersBus userinfo= (IUsersBus)ctx.getBean("userinfo");
List<UserInfo> list = certUseDS.queryUses(bo, 50000, 1).getRows();
OutputStream outs = response.getOutputStream();
BufferedWriter bw = null;
OutputStreamWriter osw = null;
String fileName = "excel" + String.valueOf(System.currentTimeMillis()).substring(9, 13) + ".xls";
String headStr = "attachment; filename=\"" + fileName + "\"";
response.setContentType("APPLICATION/OCTET-STREAM");
response.setHeader("Content-Disposition", headStr);
osw = new OutputStreamWriter(outs, "GB2312");
createExcel(list,outs);
}
/**
* 将读取到的文件重新写入新的文件
* @param output
*
* @param bw
*/
public void createExcel( List<UserInfo> list, OutputStream output)
{
Workbook workBook = null;
Row row = null;
Cell cell = null;
try
{
// 创建一个工作簿
// 生成xlsx格式
// workBook = new XSSFWorkbook();
// 生成xls格式
workBook = new HSSFWorkbook();
// 创建工作表
Sheet sheet = workBook.createSheet("users");
// 创建excel表头
createExcelHead(sheet.createRow(0));
// 将数据写入excel
for (int i = 0; i < list.size(); i++)
{
// 创建一行
row = sheet.createRow(i + 1);
int cellNo = 0;
// 循环创建单元格
cell = row.createCell(cellNo++);
// 给单元格设值
cell.setCellValue(list.get(i).getUserName());
cell = row.createCell(cellNo++);
cell.setCellValue(list.get(i).getBirth());
cell = row.createCell(cellNo++);
cell.setCellValue(list.get(i).getCreatedTime());
cell = row.createCell(cellNo++);
cell.setCellValue(list.get(i).getCounty());
}
// 将内容写入Excel
workBook.write(output);
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
try
{
output.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
/**
* 创建excel表头
*
* @param row
* 行
*/
private void createExcelHead(Row row)
{
Cell cell;
int cellNum = 0;
// 设置标题
cell = row.createCell(cellNum++);
cell.setCellValue("用户名");
cell = row.createCell(cellNum++);
cell.setCellValue("生日");
cell = row.createCell(cellNum++);
cell.setCellValue("注册日期");
cell = row.createCell(cellNum++);
cell.setCellValue("籍贯");
}
}
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
/**
* 用户信息导出类
*
* @author 寇航艇
*
*/
public class UseServlet extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
doPost(request, response);
}
@SuppressWarnings("unchecked")
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType("text/html");
// 封装页面的参数
UserInfo bo = new UserInfo();
// 调用业务层
ServletContext servletContext = this.getServletContext();
WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);
IUsersBus userinfo= (IUsersBus)ctx.getBean("userinfo");
List<UserInfo> list = certUseDS.queryUses(bo, 50000, 1).getRows();
OutputStream outs = response.getOutputStream();
BufferedWriter bw = null;
OutputStreamWriter osw = null;
String fileName = "excel" + String.valueOf(System.currentTimeMillis()).substring(9, 13) + ".xls";
String headStr = "attachment; filename=\"" + fileName + "\"";
response.setContentType("APPLICATION/OCTET-STREAM");
response.setHeader("Content-Disposition", headStr);
osw = new OutputStreamWriter(outs, "GB2312");
createExcel(list,outs);
}
/**
* 将读取到的文件重新写入新的文件
* @param output
*
* @param bw
*/
public void createExcel( List<UserInfo> list, OutputStream output)
{
Workbook workBook = null;
Row row = null;
Cell cell = null;
try
{
// 创建一个工作簿
// 生成xlsx格式
// workBook = new XSSFWorkbook();
// 生成xls格式
workBook = new HSSFWorkbook();
// 创建工作表
Sheet sheet = workBook.createSheet("users");
// 创建excel表头
createExcelHead(sheet.createRow(0));
// 将数据写入excel
for (int i = 0; i < list.size(); i++)
{
// 创建一行
row = sheet.createRow(i + 1);
int cellNo = 0;
// 循环创建单元格
cell = row.createCell(cellNo++);
// 给单元格设值
cell.setCellValue(list.get(i).getUserName());
cell = row.createCell(cellNo++);
cell.setCellValue(list.get(i).getBirth());
cell = row.createCell(cellNo++);
cell.setCellValue(list.get(i).getCreatedTime());
cell = row.createCell(cellNo++);
cell.setCellValue(list.get(i).getCounty());
}
// 将内容写入Excel
workBook.write(output);
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
try
{
output.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
/**
* 创建excel表头
*
* @param row
* 行
*/
private void createExcelHead(Row row)
{
Cell cell;
int cellNum = 0;
// 设置标题
cell = row.createCell(cellNum++);
cell.setCellValue("用户名");
cell = row.createCell(cellNum++);
cell.setCellValue("生日");
cell = row.createCell(cellNum++);
cell.setCellValue("注册日期");
cell = row.createCell(cellNum++);
cell.setCellValue("籍贯");
}
}
相关文章推荐
- 使用RDS和本地mysql做主从同步,实现多服务器数据同步
- POI将数据导入Excel,上传到服务器,并从客户端保存
- java使用POI解析Excel表格中由纯数字组成的字符串报错问题&解决数据自动保存为科学计数法问题
- 使用SharedObject保存数据到本地
- java使用poi把从数据库中取出的数据写入到excel文件中并保存到指定文件路径
- 关于使用java从http接口取数据保存到本地文件的中文乱码处理
- Swift - 本地数据的保存与读取(使用NSCoder将对象保存到.plist文件)
- POI将数据导入Excel,上传到服务器,并从客户端保存
- 嵌入式 如何使用jlink从flash中读取数据保存为bin文件到本地
- 使用POI生成Excel并进行流下载(不需在服务器上保存)
- Swift - 本地数据的保存与加载(使用NSCoder将对象保存到.plist文件)
- html5使用local storage存储的数据在本地是以何种形式保存的
- 使用SharedObject保存数据到本地
- UserDefault的使用,保存小数据到本地-iOS
- 关于使用java从http接口取数据保存到本地文件的中文乱码处理
- Swift - 本地数据的保存与加载(使用NSCoder将对象保存到.plist文件)
- Android 在本地使用SharedPreferences,保存大量的数据
- 提高安卓APP开发效率、管理代码的架子(二):BaseProtocol(加载数据,访问本地, 访问服务器,保存本地)
- Android — 使用 sharedPreferences 本地保存 key-value 数据
- Android使用本地缓存解析远程服务器JSON数据