怎样实现把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提供了此项功能,具体怎么做,下面看我来演示一下。
步骤/方法
-
如图所示,选中要进行行列转置的单元格区域。
-
选择“开始”选项卡,在“剪贴板”组中单击“复制”图标。
-
在工作表中选中目标粘贴区域的左上角单元格。如图所示。
-
单击“剪贴板”组中的“粘贴”图标,在下拉菜单中选择“转置”。
-
此时,完成了行列转置操作。
-
方法2:上面介绍的是通过功能区中的“复制”、“粘贴”图标来实现的,其实也可以在选中要置换的单元格区域后,右键在下拉菜单中选“复制”,选择粘贴区域的左上角单元格,右键在下拉菜单中选“选择性粘贴”,在弹出框里勾选“转置”复选框。
-
通过两种方式,都能实现。
END
以上是关于怎样实现把java显示的结果在EXCEL中输出的主要内容,如果未能解决你的问题,请参考以下文章