import java.io.FileInputStream;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
StringUtil;//这个是判断为空的类
@Controller
public class ExcelController
{
@RequestMapping(value = "{fileName}.xls", method =
{ RequestMethod.POST })
public void printExcel(@PathVariable String fileName, HttpServletRequest request, HttpServletResponse response)
throws Exception
{
Map<String, String[]> paramMap = request.getParameterMap();
Map<String, String> map = new HashMap<String, String>();
for (String key : paramMap.keySet())
{
String[] value = paramMap.get(key);
if (value.length == 1)
{
map.put(key, value[0]);
}
}
response.reset();
String docPath = 路径
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(docPath));// 建立新HSSFWorkbook对象
HSSFSheet sheet = workbook.getSheetAt(0);
Iterator<Row> rows = sheet.rowIterator();
while (rows.hasNext())
{
Row row = rows.next();
Iterator<Cell> cells = row.cellIterator();
while (cells.hasNext())
{
Cell cell = cells.next();
cell.setCellType(Cell.CELL_TYPE_STRING);
String value = cell.getStringCellValue();
if (StringUtil.isNotEmpty(value))
{
String regex = "\\#\\{.*\\}";
Pattern patten = Pattern.compile(regex);
Matcher matcher = patten.matcher(value);
if (matcher.matches())
{
String key = value.replaceAll("[#{}]", "").trim();
cell.setCellValue(map.get(key));
}
}
}
}
OutputStream out = response.getOutputStream();
workbook.write(response.getOutputStream());
response.setHeader("Content-disposition", "attachment; filename="
+ new String(fileName.getBytes("GB2312"), "ISO_8859_1") + ".xls");
response.setContentType("application/vnd.ms-excel");
out.flush();
out.close();
}
}
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
StringUtil;//这个是判断为空的类
@Controller
public class ExcelController
{
@RequestMapping(value = "{fileName}.xls", method =
{ RequestMethod.POST })
public void printExcel(@PathVariable String fileName, HttpServletRequest request, HttpServletResponse response)
throws Exception
{
Map<String, String[]> paramMap = request.getParameterMap();
Map<String, String> map = new HashMap<String, String>();
for (String key : paramMap.keySet())
{
String[] value = paramMap.get(key);
if (value.length == 1)
{
map.put(key, value[0]);
}
}
response.reset();
String docPath = 路径
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(docPath));// 建立新HSSFWorkbook对象
HSSFSheet sheet = workbook.getSheetAt(0);
Iterator<Row> rows = sheet.rowIterator();
while (rows.hasNext())
{
Row row = rows.next();
Iterator<Cell> cells = row.cellIterator();
while (cells.hasNext())
{
Cell cell = cells.next();
cell.setCellType(Cell.CELL_TYPE_STRING);
String value = cell.getStringCellValue();
if (StringUtil.isNotEmpty(value))
{
String regex = "\\#\\{.*\\}";
Pattern patten = Pattern.compile(regex);
Matcher matcher = patten.matcher(value);
if (matcher.matches())
{
String key = value.replaceAll("[#{}]", "").trim();
cell.setCellValue(map.get(key));
}
}
}
}
OutputStream out = response.getOutputStream();
workbook.write(response.getOutputStream());
response.setHeader("Content-disposition", "attachment; filename="
+ new String(fileName.getBytes("GB2312"), "ISO_8859_1") + ".xls");
response.setContentType("application/vnd.ms-excel");
out.flush();
out.close();
}
}