站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题java中如何将报表导出为word类型的文件???

java中如何将报表导出为word类型的文件???

摘要: java中如何将报表导出为word类型的文件???


如题,谢谢!~~~


一条一条的读出数据,对一条用POI或jacob把这条数据写到WORD 中去!


使用jacob需要加东西到系统文件夹里面,会给程序带来累赘。。。POI是怎么用的???能给个简单的介绍或例子吗???


还有听说poi已經停止發展,似乎只能支援到word97...
jacob只能用在Windows上面...
这两点都是我不希望出现的,难道现在就没有一个符合JAVA习惯的技术来操作WORD吗???




我使用过poi写过excel,excel2003的写入没有问题哈,至于word是不是只支持到word97我不知道了,可以到他的官网上具体看看嘛!写excel的例子:
public void OutPutExcelValue()//取得excel报表的内容
{
try
{
// 创建对Excel工作簿文件的引用
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(excelfile));
// .println("===SheetsNum===" + workbook.getNumberOfSheets());//获取sheet数
for (int numSheets = 0; numSheets < workbook.getNumberOfSheets(); numSheets++)
{
if (null != workbook.getSheetAt(numSheets))
{
HSSFSheet aSheet = workbook.getSheetAt(numSheets);//获得一个sheet
//System.out.println("+++getFirstRowNum+++" +
// aSheet.getFirstRowNum());//
//System.out.println("+++getLastRowNum+++" +
// aSheet.getLastRowNum());取得一个sheet的行数,注意行数从0开始计数
// RecordCount=aSheet.getLastRowNum()+1;
for (int rowNumOfSheet = 0; rowNumOfSheet <= aSheet.getLastRowNum(); rowNumOfSheet++)
{
if (null != aSheet.getRow(rowNumOfSheet))
{
HSSFRow aRow = aSheet.getRow(rowNumOfSheet);
//System.out.println(">>>getFirstCellNum<<<"+
// aRow.getFirstCellNum());
//System.out.println(">>>getLastCellNum<<<"+
// aRow.getLastCellNum());取得一行的单元割格数,注意行数从1开始计数
for (short cellNumOfRow = 0; cellNumOfRow <= (aRow.getLastCellNum()-1); cellNumOfRow++)
{

if (null != aRow.getCell(cellNumOfRow))
{
HSSFCell aCell = aRow.getCell(cellNumOfRow);
int cellType = aCell.getCellType();
//System.out.println(cellType);
switch (cellType)
{
case 0://Numeric,CELL_TYPE_NUMERIC
String CheckLength=String.valueOf(aCell.getNumericCellValue());
if(CheckLength.length()>18)
{
Message="错误,第"+(rowNumOfSheet+1)+"行"+(cellNumOfRow+1)+"列"+"单元格的内容超过最大长度";
ReturnCode=1;
return;
}
ReportValue[cellNumOfRow]= aCell.getNumericCellValue();
Message=String.valueOf(ReportValue[cellNumOfRow]);
//System.out.println(strCell);
break;
case 1://String
String strCell = aCell.getStringCellValue();
String tempstr=strCell.trim();
if(tempstr.length()==0)
{
ReportValue[cellNumOfRow]=0;
}
else
{
Message="错误,第"+(rowNumOfSheet+1)+"行"+(cellNumOfRow+1)+"列"+"单元格的内容不对,注意只可以是数字或空格或不输入!";
ReturnCode=1;
return;
}
//System.out.println(strCell);
break;
case 3:
ReportValue[cellNumOfRow]=0;
break;
default:
Message="错误,第"+(rowNumOfSheet+1)+"行"+(cellNumOfRow+1)+"列"+"单元格的内容不对,注意只可以是数字或空格或不输入!";
ReturnCode=1;
return;
//System.out.println("格式不对不读");//其它格式的数据
}
}
}
}
RecordCount=rowNumOfSheet+1;//取得成功处理的数据条数
}
}
}
// System.out.print("aaa");
Message="成功处理了"+RecordCount+"条数据";
}
catch (FileNotFoundException e)
{
Message="错误,未找到指定文件";
ReturnCode=1;
}
catch (Exception e)
{
ReturnCode=1;
Message=e.toString();
e.printStackTrace();
// System.out.println("ReadExcelError" + e);
}
/*
finally
{
//在无论出错还是不出错都执行的代码!
Message="打开文件失败!";
// Message=
ReturnCode=1;
}*/
}


↑返回目录
前一篇: 哪位GGJJ帮忙写个获取变量tag的例子,高分奉上
后一篇: 初学者请教问题之三:页面跳转问题