<!---->
package
org.eagle.jexcel;
import
jxl.
*
;
import
jxl.format.UnderlineStyle;
import
jxl.write.
*
;
import
jxl.write.Number;
import
jxl.write.Boolean;
import
java.io.
*
;
/**
*
* <p>
* Title:
* </p>
*
* <p>
* Description:
* </p>
*
* <p>
* Copyright: Copyright (c) 2006
* </p>
*
* <p>
* Company:
* </p>
*
*
@author
eagle
*
@version
1.0
*/
public
class
JexcelHandle {
public
JexcelHandle() {
}
public
static
void
writeExcel(OutputStream os) {
try
{
WritableWorkbook wwb
=
Workbook.createWorkbook(os);
//
创建excel工作表 镇定名称和位置
WritableSheet ws
=
wwb.createSheet(
"
card sheet
"
,
0
);
//
1.添加Label对象
Label label
=
new
Label(
0
,
0
,
"
编号
"
);
ws.addCell(label);
Label label2
=
new
Label(
1
,
0
,
"
冲值卡号
"
);
ws.addCell(label2);
Label label3
=
new
Label(
2
,
0
,
"
冲值卡密码
"
);
ws.addCell(label3);
Label label4
=
new
Label(
3
,
0
,
"
最晚冲值时间
"
);
ws.addCell(label4);
Label label5
=
new
Label(
4
,
0
,
"
冲值的面值(TC)(1RMB=100TC)
"
);
ws.addCell(label5);
Label label6
=
new
Label(
5
,
0
,
"
是否作废
"
);
ws.addCell(label6);
Number labelN
=
new
Number(
0
,
1
,
3.1415926
);
ws.addCell(labelN);
//
通过 记录集的方式可以得到数据库中的相关的记录
//
WritableFont wf = new WritableFont(WritableFont.TIMES, 18,
//
WritableFont.BOLD, true);
//
WritableCellFormat wcf = new WritableCellFormat(wf);
//
Label labelcf = new Label(1, 0, "this is a label test", wcf);
//
ws.addCell(labelcf);
//
//
2.添加Number对象
//
Number labelN = new Number(0,1,3.1415926);
//
ws.addCell(labelN);
//
//
//
添加带有formatting的Number对象
//
NumberFormat nf = new NumberFormat("#.##");
//
WritableCellFormat wcfN = new WritableCellFormat(nf);
//
Number labelNF = new jxl.write.Number(1,1,3.1415926,wcfN);
//
ws.addCell(labelNF);
//
//
//
3.添加Boolean对象
//
Boolean labelB = new jxl.write.Boolean(0,2,false);
//
ws.addCell(labelB);
//
//
//
4.添加DateTime对象
//
jxl.write.DateTime labelDT = new jxl.write.DateTime(0,3,new
//
java.util.Date());
//
ws.addCell(labelDT);
//
//
//
添加带有formatting的DateFormat对象
//
DateFormat df = new DateFormat("dd MM yyyy hh:mm:ss");
//
WritableCellFormat wcfDF = new WritableCellFormat(df);
//
DateTime labelDTF = new DateTime(1,3,new java.util.Date(),wcfDF);
//
ws.addCell(labelDTF);
//
//
//
添加图片对象,jxl只支持png格式图片
//
File image = new File("f:\\x.png");
//
WritableImage wimage = new
//
WritableImage(0,1,2,2,image);
//
0,1分别代表x,y.2,2代表宽和高占的单元格数
//
ws.addImage(wimage);
//
写入工作表
wwb.write();
wwb.close();
}
catch
(Exception e) {
System.out.println(
""
+
e);
}
}
public
static
void
modifyExcel(File file1, File file2) {
try
{
//
先copy 在操作第二个文件修改,
Workbook rwb
=
Workbook.getWorkbook(file1);
WritableWorkbook wwb
=
Workbook.createWorkbook(file2, rwb);
//
copy
WritableSheet ws
=
wwb.getSheet(
0
);
WritableCell wc
=
ws.getWritableCell(
0
,
0
);
//
判断单元格的类型,做出相应的转换
Label label
=
(Label) wc;
label.setString(
"
1
"
);
wwb.write();
wwb.close();
rwb.close();
}
catch
(Exception e) {
e.printStackTrace();
}
}
/**
* 读取Excel
*
*
@param
filePath
*/
public
static
void
readExcel(String filePath) {
try
{
InputStream is
=
new
FileInputStream(filePath);
Workbook rwb
=
Workbook.getWorkbook(is);
//
Sheet st = rwb.getSheet("0")这里有两种方法获取sheet表,1为名字,而为下标,从0开始
Sheet st
=
rwb.getSheet(
"
original
"
);
Cell c00
=
st.getCell(
0
,
0
);
//
通用的获取cell值的方式,返回字符串
String strc00
=
c00.getContents();
//
获得cell具体类型值的方式
if
(c00.getType()
==
CellType.LABEL) {
LabelCell labelc00
=
(LabelCell) c00;
strc00
=
labelc00.getString();
}
//
输出
System.out.println(strc00);
//
关闭
rwb.close();
}
catch
(Exception e) {
e.printStackTrace();
}
}
public
static
void
main(String args[]) {
try
{
File fileWrite
=
new
File(
"
f:/cardWrite.xls
"
);
fileWrite.createNewFile();
OutputStream os
=
new
FileOutputStream(fileWrite);
JexcelHandle.writeExcel(os);
JexcelHandle.modifyExcel(
new
File(
"
f:/cardWrite.xls
"
),
new
File(
"
f:/cardWrite2.xls
"
));
}
catch
(Exception e) {
System.out.println(e);
}
}
}
在网上看了写源码在结合自己的。不要忘了下载jxl包哟。http://www.andykhan.com/jexcelapi/
<!----><%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="org.eagle.gz.*"%>
<%@ page import="java.io.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<style type="text/css">
<!--
body,td,th {
font-size: 12px;
}
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
-->
</style></head>
<body>
<%
try{
response.reset();//清除Buffer
response.setContentType("application/vnd.ms-excel");
File fileWrite = new File("f:/testWrite.xls");
fileWrite.createNewFile();
new FileOutputStream(fileWrite);
JexcelHandle.writeExcel(new FileOutputStream(fileWrite));
}catch(Exception e){
System.out.println(e);
}
%>
</body>
</html>
也可以在jsp中运用,
群 16687185 欢迎你们的加盟。
分享到:
相关推荐
1.【内容概要】 微软官方原版PowerShell 7.5.0 x64离线安装包,集成「三件套」企业级解决方案: [1.1] 智能环境配置脚本(自动修复.NET 6依赖/注册表权限); [1.2] 运维增强组件包(SSH远程管理+日志审计模块); [1.3] 跨平台脚本兼容方案(支持Linux/Windows混合执行); 2.【适用人群】 [2.1] 运维工程师:需批量管理Windows Server集群; [2.2] 全栈开发者:构建CI/CD自动化流水线; [2.3] 系统管理员:解决PowerShell 5.1模块兼容性问题; [2.4] IT培训机构:教学环境快速统一部署; 3.【使用场景】 [3.1] 企业内网部署,离线安装+环境自动初始化,内置AutoDeploy.cmd脚本。 [3.2] 跨平台脚本开发,同时操作Linux/Windows设备,集成OpenSSH Client 8.6。 [3.3] 高危操作防护,防止误执行危险命令,内置SafeMode沙箱模块。 4. 【使用目标】快速
内容概要:本文深入探讨了AUTOSAR以太网状态管理器(EthSM),涵盖其在AUTOSAR分层架构中的位置、主要职责、架构设计、接口定义及依赖关系,并详述状态机的具体状态、转换规则与事件处理流程。同时提供了详细的通信序列图解,帮助理解初始化及启动闭合通信等关键过程,并介绍了配置参数设置和错误处理方式。 适合人群:具备嵌入式系统或汽车电子背景的研发人员和技术管理人员。 使用场景及目标:适用于理解和设计复杂的车内以太网通信系统,尤其是基于AUTOSAR平台的开发项目。帮助技术人员掌握以太网状态的管理和故障排查方法,提高车载通信系统的可靠性。 阅读建议:由于内容专业性较强,建议读者对AUTOSAR基础知识有一定了解后再行阅读,在实践中逐步掌握各个概念和知识点的应用技巧,特别注意状态切换的实际案例分析。
特易通国产对讲机TH-UVF9D v1.0中英写频软件
数据结构学习
内容概要:该文档是一份关于‘信息资源整合及应用服务平台’需求规格说明书的详尽描述,涵盖项目的总体介绍、业务分析、系统需求、功能模块需求和部署环境等多个方面。文中明确了项目目标是对异构信息资源进行全面整合,并提供了详细的架构设计,确保用户在统一平台上享受高效的资源配置和服务体验。此外还介绍了平台的关键技术工具如TRSWCM和HyBase的使用,及各子系统间协作流程,强调了信息收集渠道多样化及其智能化管理水平。 适用人群:面向项目建设方(即负责系统建设和部署的组织或团队),相关用户和技术人员。 使用场景及目标:为建设‘信息资源整合及应用服务平台’提供建设指导和功能需求分析,明确项目范围、质量标准及开发任务分工;同时有助于相关人员更好地理解该平台的工作机制和应用场景。其他说明:此需求说明书亦可用于指导平台未来的维护和技术升级工作。 其他说明: 包含对系统管理、登录管理、日志管理等多个模块的详细说明,并对每个模块的功能进行了细致划分与介绍。文档末尾附带需求跟踪矩阵,用来监测各个阶段的任务完成情况和进度管理。
系统基于Spring Boot+Vue.js的B/S架构,采用RESTful API实现前后端解耦,MySQL数据库配合MyBatis-Plus ORM框架构建高性能数据层。通过Spring Boot模块化设计、Vuex状态管理及Element UI组件库,实现开发效率与可维护性双提升,结合数据库索引优化与读写分离机制,保障系统高并发处理能力与扩展性。
数据结构学习
操作系统学习
数据结构学习
特易通国产对讲机TH-UV8000D v1.0中英写频软件
数字化为企业节能降碳提供新动能【22页】
内容概要:本文以某动物园的游客守则、员工守则以及海洋馆的特殊告示为主要框架,呈现了一个充满恐怖与诡异色彩的独特故事。故事围绕游客和员工的行为规范展开,通过种种奇怪的规定,揭示了一个超现实的环境,暗示存在某种未知实体'它’的操控或威胁,其中涉及到了诸如幻视、认知错乱等多种异象,并以‘唯一解’的形式设置了谜题等待解答,整个文本充斥着紧张悬疑氛围。 适用人群:适合喜爱恐怖悬疑风格作品的成人读者,尤其是对超自然题材感兴趣的文学爱好者。 使用场景及目标:①营造神秘惊悚感的故事叙述背景,探讨人性与现实感知之间的复杂关系;②提供解谜元素激发思考,吸引受众深入探究背后的真相。目标在于带给人们非同寻常的心理体验的同时,引导他们探索表象背后隐藏的意义,从而更好地理解作者构建这个世界观的核心意图所在。 其他说明:本文不仅是一份简单的守则指南,更是一场沉浸式的心理游戏,通过对细节的精心编排来增强故事的真实性和代入感。同时,文中提及多个关于兔子、白狮子、山羊等角色的信息交织形成了复杂的情节脉络,进一步增加了叙事深度。然而值得注意的是,尽管文章看似提供了逃生指引,但实际上并未给出明确的结局指向,使得每位读者都能根据自己对文本的理解得出不同的答案,这也是此类作品魅力之一。
基于C语言+STM32开发的人体健康监测装置(检测温度与心率判断健康状态)+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 检测当前的温度与心率,同时通过MPU6050检测老人是否摔倒 将摔倒信息发送给子女 基于C语言+STM32开发的人体健康监测装置(检测温度与心率判断健康状态)+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 检测当前的温度与心率,同时通过MPU6050检测老人是否摔倒 将摔倒信息发送给子女 基于C语言+STM32开发的人体健康监测装置(检测温度与心率判断健康状态)+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 检测当前的温度与心率,同时通过MPU6050检测老人是否摔倒 将摔倒信息发送给子女~
机器学习入门(线性回归)波士顿房价预测代码
特易通国产对讲机MD580 v1.0中英写频软件
数据结构学习
2025年美赛全流程指南
数据结构学习
内容概要:本文详细探讨了栈和队列这两种重要的线性数据结构在嵌入式系统中的C语言实现。首先介绍了栈和队列的基本概念及其存储结构,并结合实际应用场景讲解了这两种结构的操作实现方法。文章还针对嵌入式系统资源受限的特点对比了顺序栈、链栈、循环队列和链队列这四种常见形式的优点与缺点,重点讨论了在不同情况下哪种实现更适合。具体实现部分提供了详细的代码样例,并强调了性能优化策略,比如通过位运算加速取余操作,从而使得程序不仅符合理论标准还能高效地运行在特定硬件环境之中。 适合人群:嵌入式系统开发者和技术爱好者,尤其是希望深入理解栈与队列原理及其在嵌入式环境下优化策略的人士。 使用场景及目标:该文档可以帮助读者掌握如何基于不同的项目要求(如是否能预估最大容量或存在大量不定长数据等)来决定最适合的具体实现,同时通过动手编写和调试提供的示例代码加深理解栈与队列的工作机制及其在嵌入式编程中的应用场景。 其他说明:除了基础的栈和队列知识,本文件还将带领读者探索更深层次的主题,如内存管理、指针操纵及高效编码技巧等方面的内容。
内容概要:这篇文档深入剖析了 AUTOSAR 规范中重要的 COM Based Transformer 组件。首先对 COM Based Transformer 进行简述,并对其架构做了宏观概述;随后从配置层面详细解释它的结构和类之间的相互关系,并对它所涉及的重要类进行了逐项阐述;接着对内部构成、各部分功能以及外部接口做了细致入微的研究,尤其是针对其初始化机制、序列化能力及其反向工作的机理方面展开讨论;最后还展示了其具体操作过程以及状态变化情况,为理解和实施该模块提供了详实的支持。 适合人群:对于从事车载网络通信系统的开发者或研究人员来说非常有价值。 使用场景及目标:旨在帮助工程师们快速掌握 COM Based Transformer 在 AUTOSAR 平台下是如何运作的,进而提升他们构建高性能车载应用程序的能力。 阅读建议:为了能充分理解这篇技术报告的价值,强烈建议那些已经熟悉基本 AUTOSAR 结构的专业技术人员阅读此文。此外,在实际工程项目当中遇到有关此主题的问题之时可以随时查阅文中提到的概念和技术点来寻求解决方法。由于文中涉及到很多具体的接口和参数设定,请在实际开发过程中仔