jar包运行一直输出excel

jar包运行一直输出excel,第1张

直接上源码:

package edusjtuerplabpoi;

import javaioFileInputStream;

import javaioFileNotFoundException;

import javaioIOException;

import javaioInputStream;

import javatextSimpleDateFormat;

import javautilDate;

import javautilHashMap;

import javautilMap;

import orgapachepoihssfusermodelHSSFCell;

import orgapachepoihssfusermodelHSSFDateUtil;

import orgapachepoihssfusermodelHSSFRow;

import orgapachepoihssfusermodelHSSFSheet;

import orgapachepoihssfusermodelHSSFWorkbook;

import orgapachepoipoifsfilesystemPOIFSFileSystem;

/

*** 作Excel表格的功能类

/

public class ExcelReader {

private POIFSFileSystem fs;

private HSSFWorkbook wb;

private HSSFSheet sheet;

private HSSFRow row;

/

读取Excel表格表头的内容

@param InputStream

@return String 表头内容的数组

/

public String[] readExcelTitle(InputStream is) {

try {

fs = new POIFSFileSystem(is);

wb = new HSSFWorkbook(fs);

} catch (IOException e) {

eprintStackTrace();

}

sheet = wbgetSheetAt(0);

row = sheetgetRow(0);

// 标题总列数

int colNum = rowgetPhysicalNumberOfCells();

Systemoutprintln("colNum:" + colNum);

String[] title = new String[colNum];

for (int i = 0; i < colNum; i++) {

//title[i] = getStringCellValue(rowgetCell((short) i));

title[i] = getCellFormatValue(rowgetCell((short) i));

}

return title;

}

/

读取Excel数据内容

@param InputStream

@return Map 包含单元格数据内容的Map对象

/

public Map<Integer, String> readExcelContent(InputStream is) {

Map<Integer, String> content = new HashMap<Integer, String>();

String str = "";

try {

fs = new POIFSFileSystem(is);

wb = new HSSFWorkbook(fs);

} catch (IOException e) {

eprintStackTrace();

}

sheet = wbgetSheetAt(0);

// 得到总行数

int rowNum = sheetgetLastRowNum();

row = sheetgetRow(0);

int colNum = rowgetPhysicalNumberOfCells();

// 正文内容应该从第二行开始,第一行为表头的标题

for (int i = 1; i <= rowNum; i++) {

row = sheetgetRow(i);

int j = 0;

while (j < colNum) {

// 每个单元格的数据内容用"-"分割开,以后需要时用String类的replace()方法还原数据

// 也可以将每个单元格的数据设置到一个javabean的属性中,此时需要新建一个javabean

// str += getStringCellValue(rowgetCell((short) j))trim() +

// "-";

str += getCellFormatValue(rowgetCell((short) j))trim() + " ";

j++;

}

contentput(i, str);

str = "";

}

return content;

}

/

获取单元格数据内容为字符串类型的数据

@param cell Excel单元格

@return String 单元格数据内容

/

private String getStringCellValue(HSSFCell cell) {

String strCell = "";

switch (cellgetCellType()) {

case HSSFCellCELL_TYPE_STRING:

strCell = cellgetStringCellValue();

break;

case HSSFCellCELL_TYPE_NUMERIC:

strCell = StringvalueOf(cellgetNumericCellValue());

break;

case HSSFCellCELL_TYPE_BOOLEAN:

strCell = StringvalueOf(cellgetBooleanCellValue());

break;

case HSSFCellCELL_TYPE_BLANK:

strCell = "";

break;

default:

strCell = "";

break;

}

if (strCellequals("") || strCell == null) {

return "";

}

if (cell == null) {

return "";

}

return strCell;

}

/

获取单元格数据内容为日期类型的数据

@param cell

Excel单元格

@return String 单元格数据内容

/

private String getDateCellValue(HSSFCell cell) {

String result = "";

try {

int cellType = cellgetCellType();

if (cellType == HSSFCellCELL_TYPE_NUMERIC) {

Date date = cellgetDateCellValue();

result = (dategetYear() + 1900) + "-" + (dategetMonth() + 1)

+ "-" + dategetDate();

} else if (cellType == HSSFCellCELL_TYPE_STRING) {

String date = getStringCellValue(cell);

result = datereplaceAll("[年月]", "-")replace("日", "")trim();

} else if (cellType == HSSFCellCELL_TYPE_BLANK) {

result = "";

}

} catch (Exception e) {

Systemoutprintln("日期格式不正确!");

eprintStackTrace();

}

return result;

}

/

根据HSSFCell类型设置数据

@param cell

@return

/

private String getCellFormatValue(HSSFCell cell) {

String cellvalue = "";

if (cell != null) {

// 判断当前Cell的Type

switch (cellgetCellType()) {

// 如果当前Cell的Type为NUMERIC

case HSSFCellCELL_TYPE_NUMERIC:

case HSSFCellCELL_TYPE_FORMULA: {

// 判断当前的cell是否为Date

if (HSSFDateUtilisCellDateFormatted(cell)) {

// 如果是Date类型则,转化为Data格式

//方法1:这样子的data格式是带时分秒的:2011-10-12 0:00:00

//cellvalue = cellgetDateCellValue()toLocaleString();

//方法2:这样子的data格式是不带带时分秒的:2011-10-12

Date date = cellgetDateCellValue();

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

cellvalue = sdfformat(date);

}

// 如果是纯数字

else {

// 取得当前Cell的数值

cellvalue = StringvalueOf(cellgetNumericCellValue());

}

break;

}

// 如果当前Cell的Type为STRIN

case HSSFCellCELL_TYPE_STRING:

// 取得当前的Cell字符串

cellvalue = cellgetRichStringCellValue()getString();

break;

// 默认的Cell值

default:

cellvalue = " ";

}

} else {

cellvalue = "";

}

return cellvalue;

}

public static void main(String[] args) {

try {

// 对读取Excel表格标题测试

InputStream is = new FileInputStream("d:\\test2xls");

ExcelReader excelReader = new ExcelReader();

String[] title = excelReaderreadExcelTitle(is);

Systemoutprintln("获得Excel表格的标题:");

for (String s : title) {

Systemoutprint(s + " ");

}

// 对读取Excel表格内容测试

InputStream is2 = new FileInputStream("d:\\test2xls");

Map<Integer, String> map = excelReaderreadExcelContent(is2);

Systemoutprintln("获得Excel表格的内容:");

for (int i = 1; i <= mapsize(); i++) {

Systemoutprintln(mapget(i));

}

} catch (FileNotFoundException e) {

Systemoutprintln("未找到指定路径的文件!");

eprintStackTrace();

}

}

}

你要把代码直接写到jsp里嘛?

推荐写到action或者servlet中。

*** 作excel用名叫jxl的东西,网上有教程和API,非常简单

总体思路就是导入这个包之后,新建excel文件,新建sheet,然后按行列单元格的形式插进去就行了。

以上就是关于jar包运行一直输出excel全部的内容,包括:jar包运行一直输出excel、java导出excel、求一个java程序,excel表格读取表格内容存入到数据库,再从数据库读取数据存放到excel文件中。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9337326.html

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

发表评论

登录后才能评论

评论列表(0条)

保存