一、直接导出
/**
*
* 方法描述:导出网格选中的全部数据为excel格式文件
*
* @param request
* @param response
* @return null
* 返回值描述:返回值为null
*/
@RequestMapping(value = "/exportToExcelAction")
@ResponseBody
public String exportToExcelAction(HttpServletRequest request, HttpServletResponse response,GspathpointinfoBo bo,String ids) {
PageRequest pageRequest = this.getPage(request);
// 列属性名称
String propertyName ="ATHPOINTID,INFORMANT,FILLDATE,UPSTREAM,DOWNSTREAM,";
propertyName = propertyName.toLowerCase();
List<String> propertyList = new ArrayList<String>();
if (propertyName != null) {
propertyList = Arrays.asList(propertyName.split(","));
}
// 列属性描述
String propertyDes = "径识别点eventid,填报人,填报日期,上行流量,下行流量,";
List<String> propertyDesList = new ArrayList<String>();
if (propertyName != null) {
propertyDesList = Arrays.asList(propertyDes.split(","));
}
//设置excel数据最大导出记录数
pageRequest.setPageSize(999999999);
List<Map<String, String>> list = this.gspathpointinfoService.exportToExcel(pageRequest, bo, ids);
//format导出数据的格式,确保数据的导出的正确性
List<Map<String, String>> map = new ArrayList<Map<String, String>>();
for (Map<String, String> ms : list) {
Set<String> key = ms.keySet();
Map mss = new HashMap();
for (Iterator it = key.iterator(); it.hasNext();) {
String s = (String) it.next();
Object valueObject = ms.get(s);
String valueString = "";
//如果为日期
if (valueObject instanceof Date) {
valueString = DateTimeUtil.getFormatDate((Date) valueObject, DateTimeUtil.DATE_FORMAT);
}
if (valueObject != null) {
valueString = String.valueOf(valueObject);
}
mss.put(s, valueString);
}
map.add(mss);
}
//调用导出工具类导出数据
new ExportDataUtil().exportDateListToWebExcel("路径识别点报表.xls", map, propertyList, propertyDesList, request,
response);
return null;
}
二、模板导出
/**
* 方法描述:获得Excel文件
*
* @param
* @return
* @throws IOException
*/
@RequestMapping(value = "/downExcelFile")
@ResponseBody
public Map<String,List<Map<String,Object>>> downExcelFile(HttpServletRequest request, HttpServletResponse response) throws IOException{
setLoginUser(request, gspathpointinfoService);
String frontdate = request.getParameter("frontdate");
String lastdate = request.getParameter("lastdate");
String url = this.getClass().getClassLoader().getResource("").getPath()+"/template/德安高速公路路径识别流量汇总表.xls";
File fi=new File(url);
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(fi));
//读取excel模板
HSSFWorkbook wb = new HSSFWorkbook(fs);
//读取了模板内所有sheet内容
HSSFSheet sheet = wb.getSheetAt(0);
Date date = DateTimeUtil.getDateFromDateString(frontdate);
Calendar calendar=Calendar.getInstance();
calendar.setTime(date);
String title=sheet.getRow(0).getCell(0).getStringCellValue();
title=title.replaceAll("\\{year\\}", String.valueOf(calendar.get(Calendar.YEAR)));
title=title.replaceAll("\\{month\\}", String.valueOf(calendar.get(Calendar.MONTH)+1));
sheet.getRow(0).getCell(0).setCellValue(title);
List<Map<String,Object>> list = this.gspathpointinfoService.downExcelFile(frontdate, lastdate);
List<Map<String,Object>> huayanxi = map.get("huayanxi");
for(int i=0;i<huayanxi.size();i++){
sheet.getRow(2+(int)((Double)huayanxi.get(i).get("day")).intValue()).getCell(1).setCellValue(((BigDecimal)huayanxi.get(i).get("ns1")).doubleValue());
sheet.getRow(2+(int)((Double)huayanxi.get(i).get("day")).intValue()).getCell(2).setCellValue(((BigDecimal)huayanxi.get(i).get("ns2")).doubleValue());
sheet.getRow(2+(int)((Double)huayanxi.get(i).get("day")).intValue()).getCell(3).setCellValue(((BigDecimal)huayanxi.get(i).get("sn1")).doubleValue());
sheet.getRow(2+(int)((Double)huayanxi.get(i).get("day")).intValue()).getCell(4).setCellValue(((BigDecimal)huayanxi.get(i).get("sn2")).doubleValue());
sheet.getRow(2+(int)((Double)huayanxi.get(i).get("day")).intValue()).getCell(5).setCellValue(getBigerOne(((BigDecimal)huayanxi.get(i).get("sn1")).doubleValue(),((BigDecimal)huayanxi.get(i).get("sn2")).doubleValue())+getBigerOne(((BigDecimal)huayanxi.get(i).get("ns1")).doubleValue(),((BigDecimal)huayanxi.get(i).get("ns2")).doubleValue()));
}
List<Map<String,Object>> meicheng = map.get("meicheng");
for(int i=0;i<meicheng.size();i++){
sheet.getRow(2+(int)((Double)meicheng.get(i).get("day")).intValue()).getCell(6).setCellValue(((BigDecimal)meicheng.get(i).get("ns1")).doubleValue());
sheet.getRow(2+(int)((Double)meicheng.get(i).get("day")).intValue()).getCell(7).setCellValue(((BigDecimal)meicheng.get(i).get("ns2")).doubleValue());
sheet.getRow(2+(int)((Double)meicheng.get(i).get("day")).intValue()).getCell(8).setCellValue(((BigDecimal)meicheng.get(i).get("sn1")).doubleValue());
sheet.getRow(2+(int)((Double)meicheng.get(i).get("day")).intValue()).getCell(9).setCellValue(((BigDecimal)meicheng.get(i).get("sn2")).doubleValue());
sheet.getRow(2+(int)((Double)meicheng.get(i).get("day")).intValue()).getCell(10).setCellValue(getBigerOne(((BigDecimal)meicheng.get(i).get("sn1")).doubleValue(),((BigDecimal)meicheng.get(i).get("sn2")).doubleValue())+getBigerOne(((BigDecimal)meicheng.get(i).get("ns1")).doubleValue(),((BigDecimal)meicheng.get(i).get("ns2")).doubleValue()));
}
updateFormula(wb,sheet,34);
//修改模板内容导出新模板
FileOutputStream out = new FileOutputStream("D:/路径识别点报表.xls");
wb.write(out);
out.close();
new ExportDataUtil().downloadExcelFile("D:/路径识别点报表.xls", request, response);
return null;
}
//更新Excel中的公式
private static void updateFormula(Workbook wb,Sheet s,int row){
Row r=s.getRow(row);
Cell c=null;
FormulaEvaluator eval=null;
if(wb instanceof HSSFWorkbook)
eval=new HSSFFormulaEvaluator((HSSFWorkbook) wb);
else if(wb instanceof XSSFWorkbook)
eval=new XSSFFormulaEvaluator((XSSFWorkbook) wb);
for(int i=r.getFirstCellNum();i<r.getLastCellNum();i++){
c=r.getCell(i);
if(c.getCellType()==Cell.CELL_TYPE_FORMULA)
eval.evaluateFormulaCell(c);
}
}
工具类
import java.util.List;
import java.util.Map;
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
{
public static HSSFWorkbook exportDataToExcel(List<Map<String, String>> dataList, List<String> propertyList, List<String> propertyDesList, String[] param)
{
HSSFWorkbook wb = new HSSFWorkbook();
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment((short)2);
HSSFSheet sheet = wb.createSheet("sheet1");
sheet.setSelected(false);
HSSFRow rowheader = sheet.createRow(0);
for (int i = 0; i < propertyDesList.size(); i++)
{
String propertyDes = (String)propertyDesList.get(i);
HSSFCell cell = rowheader.createCell((short)i);
cell.setCellValue(propertyDes);
cell.setCellStyle(style);
}
for (int i = 0; i < dataList.size(); i++)
{
Map<String, String> dataMap = (Map)dataList.get(i);
HSSFRow row = sheet.createRow((short)i + 1);
for (int j = 0; j < propertyList.size(); j++)
{
String propertyName = (String)propertyList.get(j);
HSSFCell cell = row.createCell((short)j);
String value = (String)dataMap.get(propertyName);
if ((value == null) || ("null".equals(value))) {
value = "";
}
cell.setCellValue(String.valueOf(value));
}
}
return wb;
}
}
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
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.HSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ExportDataUtil
{
protected static final Logger log = LoggerFactory.getLogger(ExportDataUtil.class);
public void exportDataListToExcel(String exportExcelFileName, List<Object> objList, List<String> propertyList, List<String> propertyDesList, HttpServletRequest request, HttpServletResponse response)
{
List<Map<String, String>> dataList = convertToMapList(objList, propertyList);
exportDateListToWebExcel(exportExcelFileName, dataList, propertyList, propertyDesList, request, response);
}
public List<Map<String, String>> convertToMapList(List objList, List<String> propertyList)
{
List<Map<String, String>> dataList = new ArrayList();
try
{
Map<String, String> propertyMap = null;
for (int i = 0; i < objList.size(); i++)
{
propertyMap = new LinkedHashMap();
Object obj = objList.get(i);
for (int j = 0; j < propertyList.size(); j++)
{
String propertyName = (String)propertyList.get(j);
String propertyValue = "";
if (propertyName != null)
{
String getterMethod = "get" + propertyName.substring(0, 1).toUpperCase() + propertyName.substring(1);
propertyValue = String.valueOf(obj.getClass().getDeclaredMethod(getterMethod, null).invoke(obj, null));
propertyMap.put(propertyName, propertyValue);
}
}
dataList.add(propertyMap);
}
return dataList;
}
catch (IllegalArgumentException e)
{
e.printStackTrace();
}
catch (SecurityException e)
{
e.printStackTrace();
}
catch (IllegalAccessException e)
{
e.printStackTrace();
}
catch (InvocationTargetException e)
{
e.printStackTrace();
}
catch (NoSuchMethodException e)
{
e.printStackTrace();
}
return null;
}
public void exportDateListToWebExcel(String exportExcelFileName, List<Map<String, String>> dataList, List<String> propertyList, List<String> propertyDesList, HttpServletRequest request, HttpServletResponse response)
{
String[] param = { "1", "", "sheet1" };
if ((CollectionUtil.isEmpty(dataList)) || (!StringUtil.hasLength(exportExcelFileName)) || (propertyList == null)) {
return;
}
HSSFWorkbook wb = ExcelUtil.exportDataToExcel(dataList, propertyList, propertyDesList, param);
downloadExcelFile(wb, exportExcelFileName, request, response);
}
/* Error */
public void downloadExcelFile(String excelFilePath, HttpServletRequest request, HttpServletResponse response)
{
// Byte code:
// 0: iconst_0
// 1: istore 4
// 3: sipush 8096
// 6: newarray <illegal type>
// 8: astore 5
// 10: aconst_null
// 11: astore 6
// 13: aconst_null
// 14: astore 7
// 16: aload_3
// 17: ldc -62
// 19: invokeinterface 196 2 0
// 24: aload_0
// 25: aload_1
// 26: invokespecial 201 cn/jasgroup/jasframework/utils/ExportDataUtil:getFileName (Ljava/lang/String;)Ljava/lang/String;
// 29: astore 8
// 31: aload_3
// 32: ldc -51
// 34: new 68 java/lang/StringBuilder
// 37: dup
// 38: ldc -49
// 40: invokespecial 71 java/lang/StringBuilder:<init> (Ljava/lang/String;)V
// 43: aload 8
// 45: ldc -47
// 47: invokestatic 211 java/net/URLEncoder:encode (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
// 50: invokevirtual 82 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder;
// 53: invokevirtual 89 java/lang/StringBuilder:toString ()Ljava/lang/String;
// 56: invokeinterface 217 3 0
// 61: new 221 java/io/FileInputStream
// 64: dup
// 65: new 223 java/io/File
// 68: dup
// 69: aload_1
// 70: invokespecial 225 java/io/File:<init> (Ljava/lang/String;)V
// 73: invokespecial 226 java/io/FileInputStream:<init> (Ljava/io/File;)V
// 76: astore 6
// 78: aload_3
// 79: invokeinterface 229 1 0
// 84: astore 7
// 86: goto +16 -> 102
// 89: aload 7
// 91: aload 5
// 93: iconst_0
// 94: iload 4
// 96: invokevirtual 233 java/io/OutputStream:write ([BII)V
// 99: iconst_0
// 100: istore 4
// 102: aload 6
// 104: aload 5
// 106: invokevirtual 239 java/io/InputStream:read ([B)I
// 109: dup
// 110: istore 4
// 112: iconst_m1
// 113: if_icmpne -24 -> 89
// 116: aload 7
// 118: invokevirtual 245 java/io/OutputStream:flush ()V
// 121: goto +163 -> 284
// 124: astore 8
// 126: getstatic 16 cn/jasgroup/jasframework/utils/ExportDataUtil:log Lorg/slf4j/Logger;
// 129: ldc -8
// 131: invokeinterface 250 2 0
// 136: aload 6
// 138: ifnull +8 -> 146
// 141: aload 6
// 143: invokevirtual 255 java/io/InputStream:close ()V
// 146: aload 7
// 148: ifnull +166 -> 314
// 151: aload 7
// 153: invokevirtual 258 java/io/OutputStream:close ()V
// 156: goto +158 -> 314
// 159: astore 10
// 161: aload 10
// 163: invokevirtual 259 java/io/IOException:printStackTrace ()V
// 166: goto +148 -> 314
// 169: astore 8
// 171: aload 8
// 173: invokevirtual 262 java/io/FileNotFoundException:printStackTrace ()V
// 176: aload 6
// 178: ifnull +8 -> 186
// 181: aload 6
// 183: invokevirtual 255 java/io/InputStream:close ()V
// 186: aload 7
// 188: ifnull +126 -> 314
// 191: aload 7
// 193: invokevirtual 258 java/io/OutputStream:close ()V
// 196: goto +118 -> 314
// 199: astore 10
// 201: aload 10
// 203: invokevirtual 259 java/io/IOException:printStackTrace ()V
// 206: goto +108 -> 314
// 209: astore 8
// 211: aload 8
// 213: invokevirtual 259 java/io/IOException:printStackTrace ()V
// 216: aload 6
// 218: ifnull +8 -> 226
// 221: aload 6
// 223: invokevirtual 255 java/io/InputStream:close ()V
// 226: aload 7
// 228: ifnull +86 -> 314
// 231: aload 7
// 233: invokevirtual 258 java/io/OutputStream:close ()V
// 236: goto +78 -> 314
// 239: astore 10
// 241: aload 10
// 243: invokevirtual 259 java/io/IOException:printStackTrace ()V
// 246: goto +68 -> 314
// 249: astore 9
// 251: aload 6
// 253: ifnull +8 -> 261
// 256: aload 6
// 258: invokevirtual 255 java/io/InputStream:close ()V
// 261: aload 7
// 263: ifnull +18 -> 281
// 266: aload 7
// 268: invokevirtual 258 java/io/OutputStream:close ()V
// 271: goto +10 -> 281
// 274: astore 10
// 276: aload 10
// 278: invokevirtual 259 java/io/IOException:printStackTrace ()V
// 281: aload 9
// 283: athrow
// 284: aload 6
// 286: ifnull +8 -> 294
// 289: aload 6
// 291: invokevirtual 255 java/io/InputStream:close ()V
// 294: aload 7
// 296: ifnull +18 -> 314
// 299: aload 7
// 301: invokevirtual 258 java/io/OutputStream:close ()V
// 304: goto +10 -> 314
// 307: astore 10
// 309: aload 10
// 311: invokevirtual 259 java/io/IOException:printStackTrace ()V
// 314: return
// Line number table:
// Java source line #165 -> byte code offset #0
// Java source line #166 -> byte code offset #3
// Java source line #167 -> byte code offset #10
// Java source line #168 -> byte code offset #13
// Java source line #171 -> byte code offset #16
// Java source line #173 -> byte code offset #24
// Java source line #174 -> byte code offset #31
// Java source line #176 -> byte code offset #61
// Java source line #177 -> byte code offset #78
// Java source line #178 -> byte code offset #86
// Java source line #179 -> byte code offset #89
// Java source line #180 -> byte code offset #99
// Java source line #178 -> byte code offset #102
// Java source line #182 -> byte code offset #116
// Java source line #184 -> byte code offset #121
// Java source line #185 -> byte code offset #126
// Java source line #192 -> byte code offset #136
// Java source line #193 -> byte code offset #141
// Java source line #194 -> byte code offset #146
// Java source line #195 -> byte code offset #151
// Java source line #196 -> byte code offset #156
// Java source line #197 -> byte code offset #161
// Java source line #186 -> byte code offset #169
// Java source line #187 -> byte code offset #171
// Java source line #192 -> byte code offset #176
// Java source line #193 -> byte code offset #181
// Java source line #194 -> byte code offset #186
// Java source line #195 -> byte code offset #191
// Java source line #196 -> byte code offset #196
// Java source line #197 -> byte code offset #201
// Java source line #188 -> byte code offset #209
// Java source line #189 -> byte code offset #211
// Java source line #192 -> byte code offset #216
// Java source line #193 -> byte code offset #221
// Java source line #194 -> byte code offset #226
// Java source line #195 -> byte code offset #231
// Java source line #196 -> byte code offset #236
// Java source line #197 -> byte code offset #241
// Java source line #190 -> byte code offset #249
// Java source line #192 -> byte code offset #251
// Java source line #193 -> byte code offset #256
// Java source line #194 -> byte code offset #261
// Java source line #195 -> byte code offset #266
// Java source line #196 -> byte code offset #271
// Java source line #197 -> byte code offset #276
// Java source line #203 -> byte code offset #281
// Java source line #192 -> byte code offset #284
// Java source line #193 -> byte code offset #289
// Java source line #194 -> byte code offset #294
// Java source line #195 -> byte code offset #299
// Java source line #196 -> byte code offset #304
// Java source line #197 -> byte code offset #309
// Java source line #204 -> byte code offset #314
// Local variable table:
// start length slot name signature
// 0 315 0 this ExportDataUtil
// 0 315 1 excelFilePath String
// 0 315 2 request HttpServletRequest
// 0 315 3 response HttpServletResponse
// 1 110 4 i int
// 8 97 5 b byte[]
// 11 279 6 is java.io.InputStream
// 14 286 7 os java.io.OutputStream
// 29 15 8 filename String
// 124 3 8 e java.net.SocketException
// 169 3 8 e java.io.FileNotFoundException
// 209 3 8 e java.io.IOException
// 249 33 9 localObject Object
// 159 3 10 e java.io.IOException
// 199 3 10 e java.io.IOException
// 239 3 10 e java.io.IOException
// 274 3 10 e java.io.IOException
// 307 3 10 e java.io.IOException
// Exception table:
// from to target type
// 16 121 124 java/net/SocketException
// 136 156 159 java/io/IOException
// 16 121 169 java/io/FileNotFoundException
// 176 196 199 java/io/IOException
// 16 121 209 java/io/IOException
// 216 236 239 java/io/IOException
// 16 136 249 finally
// 169 176 249 finally
// 209 216 249 finally
// 251 271 274 java/io/IOException
// 284 304 307 java/io/IOException
}
/* Error */
private void downloadExcelFile(HSSFWorkbook hssfWorkbook, String excelFileName, HttpServletRequest request, HttpServletResponse response)
{
// Byte code:
// 0: aconst_null
// 1: astore 5
// 3: aload 4
// 5: ldc -62
// 7: invokeinterface 196 2 0
// 12: aload_0
// 13: aload_2
// 14: invokespecial 201 cn/jasgroup/jasframework/utils/ExportDataUtil:getFileName (Ljava/lang/String;)Ljava/lang/String;
// 17: astore 6
// 19: aload 4
// 21: ldc -51
// 23: new 68 java/lang/StringBuilder
// 26: dup
// 27: ldc -49
// 29: invokespecial 71 java/lang/StringBuilder:<init> (Ljava/lang/String;)V
// 32: aload 6
// 34: ldc -47
// 36: invokestatic 211 java/net/URLEncoder:encode (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
// 39: invokevirtual 82 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder;
// 42: invokevirtual 89 java/lang/StringBuilder:toString ()Ljava/lang/String;
// 45: invokeinterface 217 3 0
// 50: aload 4
// 52: invokeinterface 229 1 0
// 57: astore 5
// 59: aload_1
// 60: aload 5
// 62: invokevirtual 283 org/apache/poi/hssf/usermodel/HSSFWorkbook:write (Ljava/io/OutputStream;)V
// 65: aload 5
// 67: invokevirtual 245 java/io/OutputStream:flush ()V
// 70: goto +123 -> 193
// 73: astore 6
// 75: getstatic 16 cn/jasgroup/jasframework/utils/ExportDataUtil:log Lorg/slf4j/Logger;
// 78: ldc -8
// 80: invokeinterface 250 2 0
// 85: aload 5
// 87: ifnull +126 -> 213
// 90: aload 5
// 92: invokevirtual 258 java/io/OutputStream:close ()V
// 95: goto +118 -> 213
// 98: astore 8
// 100: aload 8
// 102: invokevirtual 259 java/io/IOException:printStackTrace ()V
// 105: goto +108 -> 213
// 108: astore 6
// 110: aload 6
// 112: invokevirtual 262 java/io/FileNotFoundException:printStackTrace ()V
// 115: aload 5
// 117: ifnull +96 -> 213
// 120: aload 5
// 122: invokevirtual 258 java/io/OutputStream:close ()V
// 125: goto +88 -> 213
// 128: astore 8
// 130: aload 8
// 132: invokevirtual 259 java/io/IOException:printStackTrace ()V
// 135: goto +78 -> 213
// 138: astore 6
// 140: aload 6
// 142: invokevirtual 259 java/io/IOException:printStackTrace ()V
// 145: aload 5
// 147: ifnull +66 -> 213
// 150: aload 5
// 152: invokevirtual 258 java/io/OutputStream:close ()V
// 155: goto +58 -> 213
// 158: astore 8
// 160: aload 8
// 162: invokevirtual 259 java/io/IOException:printStackTrace ()V
// 165: goto +48 -> 213
// 168: astore 7
// 170: aload 5
// 172: ifnull +18 -> 190
// 175: aload 5
// 177: invokevirtual 258 java/io/OutputStream:close ()V
// 180: goto +10 -> 190
// 183: astore 8
// 185: aload 8
// 187: invokevirtual 259 java/io/IOException:printStackTrace ()V
// 190: aload 7
// 192: athrow
// 193: aload 5
// 195: ifnull +18 -> 213
// 198: aload 5
// 200: invokevirtual 258 java/io/OutputStream:close ()V
// 203: goto +10 -> 213
// 206: astore 8
// 208: aload 8
// 210: invokevirtual 259 java/io/IOException:printStackTrace ()V
// 213: return
// Line number table:
// Java source line #207 -> byte code offset #0
// Java source line #210 -> byte code offset #3
// Java source line #212 -> byte code offset #12
// Java source line #213 -> byte code offset #19
// Java source line #214 -> byte code offset #32
// Java source line #213 -> byte code offset #45
// Java source line #216 -> byte code offset #50
// Java source line #217 -> byte code offset #59
// Java source line #218 -> byte code offset #65
// Java source line #220 -> byte code offset #70
// Java source line #221 -> byte code offset #75
// Java source line #228 -> byte code offset #85
// Java source line #229 -> byte code offset #90
// Java source line #230 -> byte code offset #95
// Java source line #231 -> byte code offset #100
// Java source line #222 -> byte code offset #108
// Java source line #223 -> byte code offset #110
// Java source line #228 -> byte code offset #115
// Java source line #229 -> byte code offset #120
// Java source line #230 -> byte code offset #125
// Java source line #231 -> byte code offset #130
// Java source line #224 -> byte code offset #138
// Java source line #225 -> byte code offset #140
// Java source line #228 -> byte code offset #145
// Java source line #229 -> byte code offset #150
// Java source line #230 -> byte code offset #155
// Java source line #231 -> byte code offset #160
// Java source line #226 -> byte code offset #168
// Java source line #228 -> byte code offset #170
// Java source line #229 -> byte code offset #175
// Java source line #230 -> byte code offset #180
// Java source line #231 -> byte code offset #185
// Java source line #233 -> byte code offset #190
// Java source line #228 -> byte code offset #193
// Java source line #229 -> byte code offset #198
// Java source line #230 -> byte code offset #203
// Java source line #231 -> byte code offset #208
// Java source line #234 -> byte code offset #213
// Local variable table:
// start length slot name signature
// 0 214 0 this ExportDataUtil
// 0 214 1 hssfWorkbook HSSFWorkbook
// 0 214 2 excelFileName String
// 0 214 3 request HttpServletRequest
// 0 214 4 response HttpServletResponse
// 1 198 5 os java.io.OutputStream
// 17 16 6 filename String
// 73 3 6 e java.net.SocketException
// 108 3 6 e java.io.FileNotFoundException
// 138 3 6 e java.io.IOException
// 168 23 7 localObject Object
// 98 3 8 e java.io.IOException
// 128 3 8 e java.io.IOException
// 158 3 8 e java.io.IOException
// 183 3 8 e java.io.IOException
// 206 3 8 e java.io.IOException
// Exception table:
// from to target type
// 3 70 73 java/net/SocketException
// 85 95 98 java/io/IOException
// 3 70 108 java/io/FileNotFoundException
// 115 125 128 java/io/IOException
// 3 70 138 java/io/IOException
// 145 155 158 java/io/IOException
// 3 85 168 finally
// 108 115 168 finally
// 138 145 168 finally
// 170 180 183 java/io/IOException
// 193 203 206 java/io/IOException
}
private String getFileName(String filePath)
{
String filename = filePath;
int index = -1;
if (filename.lastIndexOf("/") != -1) {
index = filename.lastIndexOf("/");
} else if (filename.lastIndexOf("//") != -1) {
index = filename.lastIndexOf("//");
} else if (filename.lastIndexOf("\\") != -1) {
index = filename.lastIndexOf("\\");
}
filename = filename.substring(index + 1, filename.length());
return filename;
}
private boolean isENum(String input)
{
String regx = "^((-?\\d+.?\\d*)[Ee]{1}(-?\\d+))$";
Pattern pattern = Pattern.compile(regx);
return pattern.matcher(input).matches();
}
}