表格在WEB 信息系统中起到什么作用

表格在WEB 信息系统中起到什么作用,第1张

Web报表功能主要分为以下几个大块:

报表功能:即数据展示功能,包括表格展示、图表展示、报表打印输出

参数控制:即数据查询功能,运用参数实现一些查询条件或者查询条件的组合来得到需要的数据结果,实现权限控制、报表管理等功能。

填报功能:即数据录入功能,可以通过浏览器修改数据,并回填至数据库中

部署和二次开发:报表的服务程序与应用程序统一打成包一起部署在应用服务器上,供二次开发使用。

主要用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显示:对象封装进list,在页面显示list。

你描述的不够清除。WEB页面并不能直接显示EXCEL。可以显示的当时有以下几种

1、用高级语言编写程序实现表格功能

2、用高级语言加载模块如入(ACTIVEX)来显示EXCEL

总之必须是网页的代码提供了某种功能才能实现显示EXCEL


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11721954.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存