如何将读出的数据库数据导入并生成一个excel表格
先去了服务端模版吧,用服务端模版态页,比js容易。是什版与的服务端语言及框架有关,肯定都有
当然用js也可以,得用ajax获取数据,然后js渲染到页面中
服务端代码读取excel,和操作数据库差不多
然后用服务端模版写到页面中即可,table标签行合并rowspan(写在td属性中,rowspan="2"表示该单元格占两行),列合并colspan(写法同行合并,rowspan="2"表示该单元格占两列)
利用EXCEL表格为数据库制作查询网页
用poi.jar 包。包含两个jar就可以了:poi-3.16.jarpoi-ooxml-3.16.jar
主要方法分三步:
/**
* filePath 文件路径
* unCaseRow 要排除的(从上往
* unCaseLine 要排除的列数(从左往右)
*/
public List readExcel(String filePath, int unCaseRow, int unCaseLine) throws Exception {
Sheet sheet = null;
FileInputStream inStream = null;
try {
inStream = new FileInputStream(new File(filePath));
Workbook workBook = WorkbookFactory.create(inStream);
sheet = workBook.getSheetAt(0);
} catch (Exception e) {
e.printStackTrace();
throw new Exception();
} finally {
try {
if (inStream != null) {
inStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
List list = init(sheet, unCaseRow, unCaseLine);// 需要排除行数
return list;
}
// 初始化表格中的每一行,并得到每一个单元格的值
private List init(Sheet sheet, int unCaseRow, int unCaseLine) {
int rowNum = sheet.getLastRowNum() 1; // 从零开始
List result = new ArrayList();
String[] rowArr = null;
Row row = null;
Cell cell = null;
int rowLength = 0;
int rowIndex = 0;
String rowStr = null;
for (int i = unCaseRow; i
row = sheet.getRow(i);
// 每有新的一行,创建一个新的LinkedList对象
rowLength = row.getLastCellNum();
rowIndex = 0;
rowArr = new String[LINECOUNT];
for (int j = unCaseLine; j
cell = row.getCell(j);
// 获取单元格的值
rowStr = getCellValue(cell);
// 将得到的值放入链表中
rowArr[rowIndex ] = rowStr;
}
result.add(rowArr);
}
return result;
}
// 获取单元格的值
@SuppressWarnings("deprecation")
private String getCellValue(Cell cell) {
String cellValue = "";
DataFormatter formatter = new DataFormatter();
if (cell != null) {
// 判断单元格数据的类型,不同类型调用不同的方法
switch (cell.getCellType()) {
// 数值类型
case Cell.CELL_TYPE_NUMERIC:
// 进一步判断 ,单元格格式是日期格式
if (DateUtil.isCellDateFormatted(cell)) {
cellValue = formatter.formatCellValue(cell);
} else {
// 数值
double value = cell.getNumericCellValue();
int intValue = (int) value;
cellValue = value - intValue == 0 ? String.valueOf(intValue) : String.valueOf(value);
}
break;
case Cell.CELL_TYPE_STRING:
cellValue = cell.getStringCellValue();
break;
case Cell.CELL_TYPE_BOOLEAN:
cellValue = String.valueOf(cell.getBooleanCellValue());
break;
// 判断单元格是公式格式,需要做一种特殊处理来得到相应的值
case Cell.CELL_TYPE_FORMULA: {
try {
cellValue = String.valueOf(cell.getNumericCellValue());
} catch (IllegalStateException e) {
cellValue = String.valueOf(cell.getRichStringCellValue());
}
}
break;
case Cell.CELL_TYPE_BLANK:
cellValue = "";
break;
case Cell.CELL_TYPE_ERROR:
cellValue = "";
break;
default:
cellValue = cell.toString().trim();
break;
}
}
return cellValue.trim();
}
解析成对象以后,不论是插入数据库,还是jsp,都是一样的。
插入数据库:hibernate、mybatis
在jsp显示:对象封装进list,在页面显示list。
如何用ASP读取EXCEL表格数据?
package com.ttgis.framework.util;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.hssf.usermodel.DVConstraint;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFDataValidation;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.CellRangeAddressList;
import org.apache.poi.ss.usermodel.DataValidationConstraint;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.Row;
你好! 请教你个问题 java web程序如何将读取的exc...
先去了服务端模版吧,用服务端模版态页,比js容易。是什版与的服务端语言及框架有关,肯定都有
当然用js也可以,得用ajax获取数据,然后js渲染到页面中
服务端代码读取excel,和操作数据库差不多
然后用服务端模版写到页面中即可,table标签行合并rowspan(写在td属性中,rowspan="2"表示该单元格占两行),列合并colspan(写法同行合并,rowspan="2"表示该单元格占两列)
excel 数据导入到web网页表格自动填表。
你用struts??
其实后台解析excel你去网上找一下就一大堆,照抄就行 不会改改跟我说
只是你解析以后怎么放到jsp上,先确定用什么框架再说