怎样实现把java显示的结果在EXCEL中输出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样实现把java显示的结果在EXCEL中输出相关的知识,希望对你有一定的参考价值。

将“BPSJ.txt”文件按指定的列或行显示,
最后结果输出到EXCEL文件中,用Java实现。
BPSJ.txt文件的内容大体是
10 20 33 455 686 15 23
12 54 22 32 23 23 23
4 8 45 45 12 54 65
。。。。。。。。。。。。
。。。。。。。。。。。。
。。。。。。。。。。。。
没有什么规律
最好是有代码的!代码发一下更好,想好好学习学习之!尽量发代码!

1./**

* 出险信息导出到excel(fc)

* @param mapping

* @param form

* @param request

* @param response

* @throws IOException

*/

public void exportActoExcel(ActionMapping mapping, ActionForm form ,

HttpServletRequest request,HttpServletResponse response) throws IOException

ActionErrors errors = new ActionErrors();

AcExcelBusi acBusi = new AcExcelBusi();

AccidentRecordForm arForm= (AccidentRecordForm) form;

AccidentRecordBusi arBusi = new AccidentRecordBusi();

// ////查询条件

FwUsers sessUser = (FwUsers)request.getSession().getAttribute(ConstValues.SESS_USER_MANAGE);

Map<String,Object> cisMap = arBusi.getTodoPageList(arForm,sessUser,errors);

List AcList = null;// 当页的记录

if (null != cisMap)

AcList = (List) cisMap.get("list");

//导出excel的路径、文件名

String uuid = UUID.create("exp");

String path = request.getSession().getServletContext().getRealPath("/") + ConstValues.EXP_PATH_EXCEL + uuid + ".xls";

acBusi.exprotAcExcel(AcList, path,request);

response.sendRedirect("stdownload.jsp?path=" + path );


/**

* 导出出险信息 fc

* @param jzForm

*            查询条件

* @param sessionUser

*            当前登录session用户

* @param errors

*            Action错误

* @return

*/

public void exprotAcExcel(List list, String path,HttpServletRequest request)

try

WritableWorkbook workbook = Workbook.createWorkbook(new File(path));// 创建工作簿(filePos为excel文件的路径)

WritableSheet sheet = workbook.createSheet("出险信息", 0);// 创建工作页

// 内容(居中)单元格样式

WritableCellFormat contentStyle = new WritableCellFormat(); //

contentStyle.setAlignment(jxl.format.Alignment.CENTRE); // 设置对齐方式

contentStyle.setBorder(jxl.format.Border.ALL,

jxl.format.BorderLineStyle.THIN); // 设置边框

// 一级标题单元格样式

WritableFont wf1 = new WritableFont(WritableFont.ARIAL, 15,

WritableFont.BOLD, false); // 定义格式 字体 下划线 斜体 粗体 颜色

WritableCellFormat titleStyle1 = new WritableCellFormat(wf1); //

titleStyle1.setBackground(jxl.format.Colour.GREEN); // 设置单元格的背景颜色

titleStyle1.setAlignment(jxl.format.Alignment.CENTRE); // 设置对齐方式

titleStyle1.setBorder(jxl.format.Border.ALL,

jxl.format.BorderLineStyle.THIN); // 设置边框

// 二级标题单元格样式

WritableFont wf2 = new WritableFont(WritableFont.ARIAL, 11,

WritableFont.BOLD, false); // 定义格式 字体 下划线 斜体 粗体 颜色

WritableCellFormat titleStyle2 = new WritableCellFormat(wf2); //

titleStyle2.setBackground(jxl.format.Colour.GREY_25_PERCENT); // 设置单元格的背景颜色

titleStyle2.setAlignment(jxl.format.Alignment.CENTRE); // 设置水平对齐方式

titleStyle2

.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE); // 设置垂直对齐方式

titleStyle2.setBorder(jxl.format.Border.ALL,

jxl.format.BorderLineStyle.THIN); // 设置边框

WritableCellFormat titleStyle3 = new WritableCellFormat(wf1); //

titleStyle3.setBackground(jxl.format.Colour.BRIGHT_GREEN); // 设置单元格的背景颜色

titleStyle3.setAlignment(jxl.format.Alignment.CENTRE); // 设置对齐方式

titleStyle3.setBorder(jxl.format.Border.ALL,

jxl.format.BorderLineStyle.THIN); // 设置边框

// 设置冻结单元格

sheet.getSettings().setVerticalFreeze(2);

sheet.getSettings().setHorizontalFreeze(5);

sheet.setColumnView(0, 8); // 设置列的宽度

sheet.setColumnView(1, 10); // 设置列的宽度

sheet.setRowView(0, 0);

sheet.addCell(new Label(0, 0, "hysj5800294*#", titleStyle1));// 标题

sheet.addCell(new Label(0, 1, "出险信息 ", titleStyle2));// 标题

sheet.mergeCells(0, 2, 33, 2); // 合并单元格

sheet.addCell(new Label(0, 2, "出险信息 ", titleStyle1));// 标题

sheet.addCell(new Label(0, 3, "序号", titleStyle2));// 往单元格中填写数据

sheet.addCell(new Label(1, 3, "省内/省外", titleStyle2));// 往单元格中填写数据

if (list != null && list.size() > 0)

for (int i = 0; i < list.size(); i++)

sheet.setRowView(i + 3, 300); // 设置行高

//转换数据信息

//Object[] obj = (Object[]) list.get(i);

AccidentRecord ar = (AccidentRecord) list.get(i);

sheet.addCell(new Label(0, i + 4, String.valueOf(i + 1),contentStyle));// 往单元格中填写数据 序号

sheet.addCell(new Label(1, i + 4, ar.getLicenceProvince().toString(),contentStyle));//  省内/省外

 

workbook.write();// 书写到工作簿

workbook.close();// 关闭工作簿,输出完成

catch (Exception e)

e.printStackTrace();

2.功能可以实现,可以到处,点击下载确定。

3.打开已经下载的excel,如图显示结果。得到想要的结构,成功。

参考技术A 使用JXL:
通过java操作excel表格的工具类库
支持Excel 95-2000的所有版本
生成Excel 2000标准格式
基本操作
一、创建文件
拟生成一个名为“测试数据.xls”的Excel文件,其中第一个工作表被命名为“第一页”,大致效果如下:
代码(CreateXLS.java):
//生成Excel的类
import java.io.*;
import jxl.*;
import jxl.write.*;
public class CreateXLS

public static void main(String args[])

try

//打开文件
WritableWorkbook book=
Workbook.createWorkbook(new File(“测试.xls”));
//生成名为“第一页”的工作表,参数0表示这是第一页
WritableSheet sheet=book.createSheet(“第一页”,0);
//在Label对象的构造子中指名单元格位置是第一列第一行(0,0)
//以及单元格内容为test
Label label=new Label(0,0,”test”);
//将定义好的单元格添加到工作表中
sheet.addCell(label);
/*生成一个保存数字的单元格
必须使用Number的完整包路径,否则有语法歧义
单元格位置是第二列,第一行,值为789.123*/
jxl.write.Number number = new jxl.write.Number(1,0,789.123);
sheet.addCell(number);
//写入数据并关闭文件
book.write();
book.close();
catch(Exception e)

System.out.println(e);



编译执行后,会在当前位置产生一个Excel文件。
具体:
http://baike.baidu.com/view/1327707.htm
http://www.javaeye.com/topic/4157
看了这些应该就够了本回答被提问者采纳

Excel-怎样实现行列转置

有时候,我们为了某些需要,必须把工作表的行列进行转置的方式显示。重新输入很浪费时间,怎样简单的实现转置呢,强大的excel2007提供了此项功能,具体怎么做,下面看我来演示一下。

工具/原料

 
  • 装有excel2007的电脑一台

步骤/方法

 
  1.  

    如图所示,选中要进行行列转置的单元格区域。

    技术分享
  2.  

    选择“开始”选项卡,在“剪贴板”组中单击“复制”图标。

  3.  

    在工作表中选中目标粘贴区域的左上角单元格。如图所示。

    技术分享
  4.  

    单击“剪贴板”组中的“粘贴”图标,在下拉菜单中选择“转置”。

    技术分享
  5.  

    此时,完成了行列转置操作。

    技术分享
  6.  

    方法2:上面介绍的是通过功能区中的“复制”、“粘贴”图标来实现的,其实也可以在选中要置换的单元格区域后,右键在下拉菜单中选“复制”,选择粘贴区域的左上角单元格,右键在下拉菜单中选“选择性粘贴”,在弹出框里勾选“转置”复选框。

    技术分享
  7.  

    通过两种方式,都能实现。

    技术分享
    END

注意事项

 
  • 在步骤3中,粘贴区域必须在被复制区域之外。

以上是关于怎样实现把java显示的结果在EXCEL中输出的主要内容,如果未能解决你的问题,请参考以下文章

在excel表中怎样查找自己想要的结果,怎样查看。

怎样把excel表格放大

excel 怎样筛选出 有一个值为空的行

在java程序中如果将数据库表导出为EX表?

水晶报表怎样即能导出excel又能合并单元格

怎样将Excel文件导入数据库(在JSP环境下Java代码)