作者:乔山办公网日期:
返回目录:excel表格制作
1.通过搜索引擎,找到国家旅游局的网站,点击主菜单的【政务公开】——【统计数据】,则可以看到一系列包含数据的网页。
2.打开一个网百页,确认该网页包含了数据度表。
复制该网页的网址,备用。知
3.启动Excel文件,在一个工作表中,点击【数据】——>【自网站】
4.按ctrl+V键,粘贴刚才上一步复制的网址;
点击网址栏右侧的【转到】;
网页显示后,单击数据表格左上角的【横箭头】,变道为绿色的【对号】;
点击整个窗口右下角的【导入】。
5.选择一个工作表位置,导入数据。
6.结果如下图所示。
虽然已经导入了数据,这实际上相当于建立了Excel文件与网页间的连接,这个Excel文件复制到别处,因为连接关系破坏,所以数据可能无法显示。
建议复制导入的数据到一个新的Excel文件,【选择性粘贴】为纯数值,这样就万无一失了。
打开你要显示的Excel文档,然后另存为网页格式就OK了,然后你在引用好了!
答问题补充:
存好后你可以看到已经变成.htm后缀了,用IE打开然后右键查看源码不就好了!
主要用poi.jar 包。包含两个jar就可以了:poi-3.16.jar、poi-ooxml-3.16.jar
主要方法分三步:
/**
* filePath 文件路径
* unCaseRow 要排除的行数(从上往下)
* unCaseLine 要排除的列数(从左往右)
*/
public List<String[]> 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<String[]> list = init(sheet, unCaseRow, unCaseLine);// 需要排除行数
return list;
}
// 初始化表格中的每一行,并得到每一个单元格的值
private List<String[]> init(Sheet sheet, int unCaseRow, int unCaseLine) {
int rowNum = sheet.getLastRowNum() + 1; // 从零开始
List<String[]> result = new ArrayList<String[]>();
String[] rowArr = null;
Row row = null;
Cell cell = null;
int rowLength = 0;
int rowIndex = 0;
String rowStr = null;
for (int i = unCaseRow; i < rowNum; i++) {
row = sheet.getRow(i);
// 每有新的一行,创建一个新的LinkedList对象
rowLength = row.getLastCellNum();
rowIndex = 0;
rowArr = new String[LINECOUNT];
for (int j = unCaseLine; j < rowLength; 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显示:对e799bee5baa6e79fa5e98193e78988e69d83363象封装进list,在页面显示list。
选中那一列,然后右键,选择删除超链接即可。