java文本框格式的java代码格式

求java 完美解析 docx文档例子 - ITeye问答
求java 完美解析 docx文档例子
采纳的答案
& java读取word文档时,虽然网上介绍了很多插件poi、java2Word、jacob、itext等等,poi无法读取格式(新的API估计行好像还在处于研发阶段,不太稳定,做项目不太敢用);java2Word、jacob容易报错找不到注册,比较诡异,我曾经在不同的机器上试过,操作方法完全一致,有的机器不报错,有的报错,去他们论坛找高人解决也说不出原因,项目部署用它有点玄;itxt好像写很方便但是我查了好久资料没有见到过关于读的好办法。经过一番选择还是折中点采用rtf最好,毕竟rtf是开源格式,不需要借助任何插件,只需基本IO操作外加编码转换即可。rtf格式文件表面看来和doc没啥区别,都可以用word打开,各种格式都可以设定。
----- 实现的功能:读取rtf模板内容(格式和文本内容),替换变化部分,形成新的rtf文档。
----- 实现思路:模板中固定部分手动输入,变化的部分用$info$表示,只需替换$info$即可。
&&&&&& 1、采用字节的形式读取rtf模板内容
&&&&&& 2、将可变的内容字符串转为rtf编码
&&&&&& 3、替换原文中的可变部分,形成新的rtf文档
主要程序如下:
* 将制定的字符串转换为rtf编码
public String bin2hex(String bin) {
&&&&&&& char[] digital = "ABCDEF".toCharArray();
&&&&&&& StringBuffer sb = new StringBuffer("");
&&&&&&& byte[] bs = bin.getBytes();
&&&&&&&
&&&&&&& for (int i = 0; i & bs.i++) {
&&&&&&&&&&& bit = (bs[i] & 0x0f0) && 4;
&&&&&&&&&&& sb.append("\\'");
&&&&&&&&&&& sb.append(digital[bit]);
&&&&&&&&&&& bit = bs[i] & 0x0f;
&&&&&&&&&&& sb.append(digital[bit]);
&&&&&&& }
&&&&&&& return sb.toString();
&&& }
* 字节形式读取rtf模板内容
public String readByteRtf(InputStream ins, String path){
&& String sourcecontent = "";
& try{
&&& ins = new FileInputStream(path);
&&& byte[] b = new byte[1024];
&&&&&&&&& if (ins == null) {
&&&&&&&&&&&&&& System.out.println("源模板文件不存在");
&&&&&&&&& }
&&&&&&&&& int bytesRead = 0;
&&&&&&&&& while (true) {
&&&&&&&&&&&&& bytesRead = ins.read(b, 0, 1024); // return final read bytes counts
&&&&&&&&&&&&& if(bytesRead == -1) {// end of InputStream
&&&&&&&&&&&&&& System.out.println("读取模板文件结束");
&&&&&&&&&&&&&&
&&&&&&&&&&&&& }
&&&&&&&&&&&&& sourcecontent += new String(b, 0, bytesRead); // convert to string using bytes
&&&&&&&&&& }
& }catch(Exception e){
&& e.printStackTrace();
& }
&&&&& 以上为核心代码,剩余部分就是替换,从新组装java中的String.replace(oldstr,newstr);方法可以实现,在这就不贴了。源代码部分详见附件。运行源代码前提:
c盘创建YQ目录,将附件中"模板.rtf"复制到YQ目录之下,运行OpreatorRTF.java文件即可,就会在YQ目录下生成文件名如:21时15分19秒_cheney_记录.rtf 的文件。。。。。文件名是在程序中指定的呵呵。由于是由商业软件中拆分出的demo所以只是将自己原来的写的程序分离,合并在一个java文件中,所以有的方法在示例程序中看似多余,没有必要那么麻烦。
&&&& 对于替换部分需要循环的特例程序,我不好拆分,里面很容易暴露商业软件的东西,所以就不贴了,有需要的话可以加我QQ或者MSN,一起讨论呵呵。附件传了半天也没有传上去,没有办法只有这样搞了呵呵。模板文件附件无法存放,需要的直接联系呵呵。其实直接看以下的java程序部分,就会明白
* 以下部分是java源代码
import java.io.F
import java.io.FileInputS
import java.io.FileW
import java.io.IOE
import java.io.InputS
import java.io.PrintW
import java.text.SimpleDateF
import java.util.D
public class OperatorRTF {
* 字符串转换为rtf编码
* @param content
public String strToRtf(String content){
char[] digital = "ABCDEF".toCharArray();
&&&&&&& StringBuffer sb = new StringBuffer("");
&&&&&&& byte[] bs = content.getBytes();
&&&&&&& for (int i = 0; i & bs. i++) {
&&&&&&&&&&& bit = (bs[i] & 0x0f0) && 4;
sb.append("\\'");
&&&&&&&&&&& sb.append(digital[bit]);
&&&&&&&&&&& bit = bs[i] & 0x0f;
&&&&&&&&&&& sb.append(digital[bit]);
&&&&&&& return sb.toString();
* 替换文档的可变部分
* @param content
* @param replacecontent
* @param flag
public String replaceRTF(String content,String replacecontent,int flag){
String rc = strToRtf(replacecontent);
String target = "";
/*if(flag==0){
target = content.replace("$time$",rc);
if(flag==0){
target = content.replace("$timetop$",rc);
if(flag==1){
target = content.replace("$info$",rc);
if(flag==2){
target = content.replace("$idea$",rc);
if(flag==3){
target = content.replace("$advice$",rc);
if(flag==4){
target = content.replace("$infosend$",rc);
* 获取文件路径
* @param flag
public String getSavePath() {
String path = "C:\\YQ";
File fDirecotry = new File(path);
if (!fDirecotry.exists()) {
fDirecotry.mkdirs();
* 半角转为全角
public String ToSBC(String input){
&& char[] c = input.toCharArray();
&& for (int i = 0; i & c. i++){
&&&&&& if (c[i] == 32){
&&&&&&&&&& c[i] = (char) 12288;
&&&&&&&&&&
&&&&&& if (c[i] & 127){
c[i] = (char) (c[i] + 65248);
&& return new String(c);
public void rgModel(String username, String content) {
// TODO Auto-generated method stub
/*& 构建生成文件名 targetname:12时10分23秒_username_记录.rtf */
Date current=new Date();
&&&&&&& SimpleDateFormat sdf=new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String targetname = sdf.format(current).substring(11,13) + "时";
targetname += sdf.format(current).substring(14,16) + "分";
targetname += sdf.format(current).substring(17,19) + "秒";
targetname += "_" + username +"_记录.rtf";
/* 字节形式读取模板文件内容,将结果转为字符串 */
String strpath = getSavePath();
String sourname = strpath+"\\"+"模板.rtf";
String sourcecontent = "";
InputStream ins =
ins = new FileInputStream(sourname);
byte[] b = new byte[1024];
&&&&&&& if (ins == null) {
&&&&&&&&&&&& System.out.println("源模板文件不存在");
&&&&&&& int bytesRead = 0;
&&&&&&& while (true) {
&&&&&&&&&&& bytesRead = ins.read(b, 0, 1024); // return final read bytes counts
&&&&&&&&&&& if(bytesRead == -1) {// end of InputStream
&&&&&&&&&&
System.out.println("读取模板文件结束");
&&&&&&&&&&
&&&&&&&&&&& }
&&&&&&&&&&& sourcecontent += new String(b, 0, bytesRead); // convert to string using bytes
&&&&&&&& }
}catch(Exception e){
e.printStackTrace();
/* 修改变化部分 */
String targetcontent = "";
* 拆分之后的数组元素与模板中的标识符对应关系
* array[0]:timetop&&&
* array[1]:info
* array[2]:idea
* array[3]:advice
* array[4]:infosend
String array[] = content.split("~");
* 日:更新模板之后时间无需自动填充
/*String nowtime = sdf.format(current).substring(0,4) + "年";
nowtime += sdf.format(current).substring(5,7) + "月";
nowtime += sdf.format(current).substring(8,10) + "日";*/
for(int i=0;i&array.i++){
/*if(i==0){
targetcontent = documentDoc.replaceRTF(sourcecontent,nowtime,i);
targetcontent = documentDoc.replaceRTF(targetcontent,array[i-1],i);
targetcontent = replaceRTF(sourcecontent, array[i], i);
targetcontent = replaceRTF(targetcontent, array[i], i);
/* 结果输出保存到文件 */
FileWriter fw = new FileWriter(getSavePath()+"\\" + targetname,true);
&&&&&&&&&&& PrintWriter out = new PrintWriter(fw);
&&&&&&&&&&& if(targetcontent.equals("")||targetcontent==""){
&&&&&&&&&&&
out.println(sourcecontent);
&&&&&&&&&&& }else{
&&&&&&&&&&&
out.println(targetcontent);
&&&&&&&&&&& }
&&&&&&&&&&& out.close();
&&&&&&&&&&& fw.close();
&&&&&&&&&&& System.out.println(getSavePath()+"& 该目录下生成文件" + targetname + " 成功");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
public static void main(String[] args) {
// TODO Auto-generated method stub
OperatorRTF oRTF = new OperatorRTF();
* 被替换内容以"~"符号分割,处理的时候将其拆分为数组即可
String content = "日9时-日6时~我们参照检验药品的方法~我们参照检验药品的方法~我们参照检验药品的方法~我们参照检验药品的方法";
oRTF.rgModel("cheney",content);
POI吧 项目用过好多次了 很好用,最新3.8吧,网上例子api说明都很多,google随便搜搜
[url]
http://poi.apache.org/[/url]
apache的POI
已解决问题
未解决问题>> JAVA初级编程代码 输出文本 还有更换格式对程序代码的影响
JAVA初级编程代码 输出文本 还有更换格式对程序代码的影响
所属分类:
下载地址:
lincoln.rar文件大小:1.21 kB
分享有礼! 》
请点击右侧的分享按钮,把本代码分享到各社交媒体。
通过您的分享链接访问Codeforge,每来2个新的IP,您将获得0.1 积分的奖励。
通过您的分享链接,每成功注册一个用户,该用户在Codeforge上所获得的每1个积分,您都将获得0.2 积分的分成奖励。
JAVA初级编程代码 输出文本 还有更换格式对程序代码的影响-primary JAVA programming code also replace the text output format of the procedural code of
Sponsored links
源码文件列表
温馨提示: 点击源码文件名可预览文件内容哦 ^_^
638.00 B24-10-05 00:00
646.00 B24-10-05 00:00
430.00 B24-10-05 00:00
(提交有效评论获得积分)
评论内容不能少于15个字,不要超出160个字。
评价成功,多谢!
下载lincoln.rar
CodeForge积分(原CF币)全新升级,功能更强大,使用更便捷,不仅可以用来下载海量源代码马上还可兑换精美小礼品了
您的积分不足,优惠套餐快速获取 30 积分
10积分 / ¥100
30积分 / ¥200原价 ¥300 元
100积分 / ¥500原价 ¥1000 元
订单支付完成后,积分将自动加入到您的账号。以下是优惠期的人民币价格,优惠期过后将恢复美元价格。
支付宝支付宝付款
微信钱包微信付款
更多付款方式:、
您本次下载所消耗的积分将转交上传作者。
同一源码,30天内重复下载,只扣除一次积分。
鲁ICP备号-3 runtime:Elapsed:647.304ms - init:0.1;find:0.9;t:17.0;tags:0.3;related:502.6;comment:0.3; 27.69
登录 CodeForge
还没有CodeForge账号?
Switch to the English version?
^_^"呃 ...
Sorry!这位大神很神秘,未开通博客呢,请浏览一下其他的吧博客分类:
实际开发过程中通常用到的就是从数据库导出EXCEL表格了,JXL可以这样做,其实POI也可以(关于JXL与POI的异同可访问我之前总结的),之前写过POI对七种文档(当然也包括EXCEL)的内容读取操作的,这次要写的就非常重要了,就是开发中经常会用到的POI读取数据库导出EXCEL的操作,所谓导出EXCEL也就是生成带数据内容的新的EXCEL文件
目前的POI版本是3.7
下载地址:http://poi.apache.org/download.html#POI-3.7
必须包只有一个:poi-3.7-.jar
整理思路:1)数据库中的字段对应EXCEL的最顶层一行各个CELL名称[也就是上面图片中序号版本...的]
2)将每个数据一次插入到对应名称CELL的对应记录位置
3)为了方便操作,顶层的cell各个名称可以抽取出来成为一个单独类
第一部分:单独的EXCEL表头类
public class Cachetable {
private String devIp;
/** default constructor */
public Cachetable() {
/** full constructor */
public Cachetable(int recnum, String devIp, String srcaddr, String dstaddr, String nexthop, String input, String output, String dpkts, String doctets, String sstart, String dstport, String prot, String tos, String srcas, String dstas,String pduversion) {
this.recnum =
this.devIp = devIp;
this.srcaddr =
this.dstaddr =
this.nexthop =
this.input =
this.output =
this.dpkts =
this.doctets =
this.sstart =
this.dstport =
this.prot =
this.tos =
this.srcas =
this.dstas =
this.pduversion =
public int getRecnum() {
return this.
public void setRecnum(int recnum) {
this.recnum=
public String getDevIp() {
return this.devIp;
public void setDevIp(String devIp) {
this.devIp = devIp;
public String getSrcaddr() {
return this.
public void setSrcaddr(String srcaddr) {
this.srcaddr =
public String getDstaddr() {
return this.
public void setDstaddr(String dstaddr) {
this.dstaddr =
public String getNexthop() {
return this.
public void setNexthop(String nexthop) {
this.nexthop =
public String getInput() {
return this.
public void setInput(String input) {
this.input =
public String getOutput() {
return this.
public void setOutput(String output) {
this.output =
public String getDpkts() {
return this.
public void setDpkts(String dpkts) {
this.dpkts =
public String getDoctets() {
return this.
public void setDoctets(String doctets) {
this.doctets =
public String getSstart() {
return this.
public void setSstart(String sstart) {
this.sstart =
public String getDstport() {
return this.
public void setDstport(String dstport) {
this.dstport =
public String getProt() {
return this.
public void setProt(String prot) {
this.prot =
public String getTos() {
return this.
public void setTos(String tos) {
this.tos =
public String getSrcas() {
return this.
public void setSrcas(String srcas) {
this.srcas =
public String getDstas() {
return this.
public void setDstas(String dstas) {
this.dstas =
public String getPduversion() {
return this.
public void setPduversion(String pduversion) {
this.pduversion =
第二部分:具体的POI操作生成EXCEL类
【我这里只是个示例,没连数据库,直接运行即可,如果想连,稍微变动一点即可】
package com.zkyy.flow.
import java.io.FileOutputS
import java.io.IOE
import java.io.OutputS
import java.sql.SQLE
import java.util.ArrayL
import java.util.L
import javax.swing.JOptionP
import org.apache.poi.hssf.usermodel.HSSFC
import org.apache.poi.hssf.usermodel.HSSFCellS
import org.apache.poi.hssf.usermodel.HSSFDataF
import org.apache.poi.hssf.usermodel.HSSFF
import org.apache.poi.hssf.usermodel.HSSFH
import org.apache.poi.hssf.usermodel.HSSFR
import org.apache.poi.hssf.usermodel.HSSFS
import org.apache.poi.hssf.usermodel.HSSFW
import com.kk.flow.webapp.util.C
public class ExcelOut {
public static final String[] tableHeader = {"序号","版本","接收时刻","设备","入接口","出接口",
"源IP","目的IP","下一跳","协议","端口","对端端口","TOS","源AS","目的AS","TCP_FLAG","pad1","pad2"};
//创建工作本
public static HSSFWorkbook demoWorkBook = new HSSFWorkbook();
public static HSSFSheet demoSheet = demoWorkBook.createSheet("The World's 500 Enterprises");
//表头的单元格个数目
public static final short cellNumber = (short)tableHeader.
//数据库表的列数
public static final int columNumber = 1;
* 创建表头
public static void createTableHeader()
HSSFHeader header = demoSheet.getHeader();
header.setCenter("世界五百强企业名次表");
HSSFRow headerRow = demoSheet.createRow((short) 0);
for(int i = 0;i & cellNi++)
HSSFCell headerCell = headerRow.createCell((short) i);
headerCell.setCellType(HSSFCell.CELL_TYPE_STRING);
headerCell.setCellValue(tableHeader[i]);
* @param cells
* @param rowIndex
public static void createTableRow(List&String& cells,short rowIndex)
//创建第rowIndex行
HSSFRow row = demoSheet.createRow((short) rowIndex);
for(int i = 0;i & cells.size();i++)
//创建第i个单元格
HSSFCell cell = row.createCell(i);
if(cell.getCellType()!=1){
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
//新增的四句话,设置CELL格式为文本格式
HSSFCellStyle cellStyle2 = demoWorkBook.createCellStyle();
HSSFDataFormat format = demoWorkBook.createDataFormat();
cellStyle2.setDataFormat(format.getFormat("@"));
cell.setCellStyle(cellStyle2);
cell.setCellValue(cells.get(i));
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
* USE:用于获取Cachetable的数据。。。假数据。到时候:你连接数据库的到List&Cachetable&的数据就行了。 共生成
* 100条数据.相当于100行
public List&Cachetable& getDate() {
List&Cachetable& cacheList = new ArrayList&Cachetable&();
for (int j = 0; j & 300; j++) {
Cachetable tb = new Cachetable();
tb.setRecnum(j + 1);
tb.setDevIp("JavaCrazyer");
tb.setSrcaddr("北京");
tb.setDstaddr("xxx");
tb.setNexthop("yy");
tb.setInput("123");
tb.setOutput("127.0.0.1");
tb.setDpkts("what are you doing?");
tb.setDoctets("who are you?");
tb.setSstart("Oh
tb.setProt("One");
tb.setTos("two");
tb.setSrcas("three");
tb.setDstas("four");
tb.setPduversion("不知道");
cacheList.add(tb);
return cacheL
* 创建整个Excel表
* @throws SQLException
void createExcelSheet() throws SQLException{
createTableHeader();
int rowIndex=1;
List&Cachetable& list=getDate();
for(int j=0;j&list.size();j++){
List&String& listRead=new ArrayList&String&();
for(int i=1;i&=columNi++){
listRead.add(list.get(i).getDevIp());
listRead.add(list.get(i).getSrcaddr());
listRead.add(list.get(i).getDstaddr());
listRead.add(list.get(i).getNexthop());
listRead.add(list.get(i).getInput());
listRead.add(list.get(i).getOutput());
listRead.add(list.get(i).getDpkts());
listRead.add(list.get(i).getDoctets());
listRead.add(list.get(i).getSstart());
listRead.add(list.get(i).getProt());
listRead.add(list.get(i).getTos());
listRead.add(list.get(i).getSrcas());
listRead.add(list.get(i).getDstas());
listRead.add(list.get(i).getPduversion());
listRead.add(rowIndex+"");
createTableRow(listRead,(short)rowIndex);
rowIndex++;
* 导出表格
* @param sheet
* @param os
* @throws IOException
public void exportExcel(HSSFSheet sheet,OutputStream os) throws IOException
sheet.setGridsPrinted(true);
HSSFFooter footer = sheet.getFooter();
footer.setRight("Page " + HSSFFooter.page() + " of " +
HSSFFooter.numPages());
demoWorkBook.write(os);
public static void main(String[] args) {
String fileName = "f:\\世界五百强企业名次表.xls";
FileOutputStream fos =
ExcelOut pd = new ExcelOut();
pd.createExcelSheet();
fos = new FileOutputStream(fileName);
pd.exportExcel(demoSheet,fos);
JOptionPane.showMessageDialog(null, "表格已成功导出到 : "+fileName);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "表格导出出错,错误信息 :"+e+"\n错误原因可能是表格已经打开。");
e.printStackTrace();
} finally {
fos.close();
} catch (Exception e) {
e.printStackTrace();
1)有关数据库连接,如果操作到数据库的话,在遍历数据库时用getDate这个方法遍历就可以啦,那么插入的数据就不是定值了,而是数据库中的值哦,具体操作数据库的步骤,我不用说,你懂得
2)有关涉及更改EXCEL的CELL格式为字符串,如图一般情况下大家导出的EXCEL表格CELL格式通常是常规的
这个问题,估计已经不止一两个朋友在网上问过,我至今没有看到一个满意的答案,通常大家都是想到既然是设置CELL格式肯定是通过cell.setCellType(HSSFCell.CELL_TYPE_STRING)然后插入数据再导出,诚然这种想法是对的,实际上不能起到任何作用,因为这个方法就是EXCEL默认的格式,写不写都一样(好多同学都不知道吧),再写出我的解决方案之前请大家参考下一段文字
第一段:Excel的单元格格式 图中的数据有数值、货币、时间、日期、文本等格式。这些数据格式在POI中的HSSFDataFormat类里都有相应的定义。 HSSFDataFormat是HSSF子项目里面定义的一个类。类HSSFDataFormat允许用户新建数据格式类型。HSSFDataFormat类包含静态方法static java.lang.String getBuiltinFormat(short index),它可以根据编号返回内置数据类型。另外static short getBuiltinFormat(java.lang.String format)方法则可以根据数据类型返回其编号,static java.util.List getBuiltinFormats()可以返回整个内置的数据格式列表。 在HSSFDataFormat里一共定义了49种内置的数据格式,如下面所示。
HSSFDataFormat的数据格式 内置数据类型 编号 "General" 0 "0" 1 "0.00" 2 "#,##0" 3 "#,##0.00" 4 "($#,##0_);($#,##0)" 5 "($#,##0_);[Red]($#,##0)" 6 "($#,##0.00);($#,##0.00)" 7 "($#,##0.00_);[Red]($#,##0.00)" 8 "0%" 9 "0.00%" 0xa "0.00E+00" 0xb "# ?/?" 0xc "# ??/??" 0xd "m/d/yy" 0xe "d-mmm-yy" 0xf "d-mmm" 0x10 "mmm-yy" 0x11 "h:mm AM/PM" 0x12 "h:mm:ss AM/PM" 0x13 "h:mm" 0x14 "h:mm:ss" 0x15 "m/d/yy h:mm" 0x16 保留为过国际化用 0x17 - 0x24 "(#,##0_);(#,##0)" 0x25 "(#,##0_);[Red](#,##0)" 0x26 "(#,##0.00_);(#,##0.00)" 0x27 "(#,##0.00_);[Red](#,##0.00)" 0x28 "_($*#,##0_);_($*(#,##0);_($* \"-\"_);_(@_)" 0x29 "_(*#,##0.00_);_(*(#,##0.00);_(*\"-\"??_);_(@_)" 0x2a "_($*#,##0.00_);_($*(#,##0.00);_($*\"-\"??_);_(@_)" 0x2b "_($*#,##0.00_);_($*(#,##0.00);_($*\"-\"??_);_(@_)" 0x2c "mm:ss" 0x2d "[h]:mm:ss" 0x2e "mm:ss.0" 0x2f "##0.0E+0" 0x30 "@" - This is text format 0x31 在上面表中,字符串类型所对应的是数据格式为"@"(最后一行),也就是HSSFDataFormat中定义的值为0x31(49)的那行。Date类型的值的范围是0xe-0x11,本例子中的Date格式为""m/d/yy"",在HSSFDataFormat定义的值为0xe(14)。
第二段:POI中Excel文件Cell的类型 在读取每一个Cell的值的时候,通过getCellType方法获得当前Cell的类型,在Excel中Cell有6种类型,如下面所示。 Cell的类型 CellType 说明 CELL_TYPE_BLANK 空值 CELL_TYPE_BOOLEAN 布尔型 CELL_TYPE_ERROR 错误 CELL_TYPE_FORMULA 公式型 CELL_TYPE_STRING 字符串型 CELL_TYPE_NUMERIC 数值型 一般都采用CELL_TYPE_STRING和CELL_TYPE_NUMERIC类型,因为在Excel文件中只有字符串和数字。如果Cell的Type为CELL_TYPE_NUMERIC时,还需要进一步判断该Cell的数据格式,因为它有可能是Date类型,在Excel中的Date类型也是以Double类型的数字存储的。Excel中的Date表示当前时间与日相隔的天数,所以需要调用HSSFDateUtil的isCellDateFormatted方法,判断该Cell的数据格式是否是Excel Date类型。如果是,则调用getDateCellValue方法,返回一个Java类型的Date。
好了读完上面两段文字我想大家关于CELL类型和格式应该清楚了,更应该清楚的是到底怎么才能将‘设置单元格格式’改成文本然后再导出
解决方案:就是上面代码中的ExcelOut类里面createTableRow方法中的一段代码
HSSFCellStyle cellStyle2 = demoWorkBook.createCellStyle();
HSSFDataFormat format = demoWorkBook.createDataFormat();
cellStyle2.setDataFormat(format.getFormat("@"));
cell.setCellStyle(cellStyle2);
看最终导出效果图吧,点击任何一个CELL右键设置单元格格式
JOptionPane.showMessageDialog(null, "表格已成功导出到 : "+fileName);这句话有点意思
看到没这就是javax.swing.JOptionPane类的有关消息输出的好处,很方便使用
PS:更多的关于POI设置EXCEL单元格格式为数字、百分比、货币、日期等等格式的,请看我接下来要写的
34 顶10 踩
浏览 59102
如何让数字类型导出来之后左上角不带绿色三角形?这个是excle上面的验证,在excle上面设置就好
很全面。受教了。
JavaCrazyer
浏览: 2545702 次
来自: 河南
这些example有些过时了,官方建议使用HBase-1.0
重命名了一下搞定了
为什么下载以后老解压不了呢?
读写以及修改excel文件,试试用pageoffice吧。
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 java调整代码格式 的文章

 

随机推荐