作者willieliao (Willie Liao)
看板java
标题Re: [问题] 有关Java Excel
时间Sat Mar 29 23:06:05 2008
1)microsoft有定义excel自己的xml format(xml spreadsheet,xmlss),请参考
http://support.microsoft.com/kb/288215
api
http://msdn2.microsoft.com/en-us/library/aa140066(office.10).aspx
我所谓的"适合一次性的exporting"是因为java并没有xmlss专用的parser,
要load你自己输出的excel xml再加以编辑有些麻烦。
2)要放图在里面有两种方式,第一是用live chart(参数也是在xml里面)
要放静态图片的话更加tricky:
mht
请参考我的原po,不过这次把有图片的excel档存成.mht(web page single archive)
mht实际上是一个包含了xml和其他supportive file的zip档,你刚刚embeded的图片
也在里面。把mht副档名改成xls,一样可以用excel开启。
我们公司的产品实际上是用这个方式,不过实做上比较复杂。
html
还有一种方式是存成html,这样会出现一个htm档案和一个存image的folder。把htm
档名改成xls,还是可以用excel开启(伟大的excel..)
这种做法有一个特殊的优点是,那个html档基本是html tag跟office xml的组合,
因此如果在没有office的情况下(比如linux)开启档案,你会看到一个html的
table,长的跟原来的excel很像
坏处是要连那个folder一起输出给user。当然,如果你没有图片的话就没关系。
希望对你有帮助。
willie
※ 引述《kojinvhfsk (野炮蕃薯)》之铭言:
: 呵呵…原来还有这种做法,受教了!
: 只是你所谓的「只适合一次性的exporting」是什麽意思呢?
: 以下是我以程式建立的Xml档,其副档名是xls,就可以直接用Excel开启了
: 且用Excel开启後编辑,存档後,用记事本开启,也会增加了相对应的Tag
: <?xml version='1.0'?>
: <?mso-application progid='Excel.Sheet'?>
: <Workbook xmlns='urn:schemas-microsoft-com:office:spreadsheet'
: xmlns:o='urn:schemas-microsoft-com:office:office'
: xmlns:x='urn:schemas-microsoft-com:office:excel'
: xmlns:ss='urn:schemas-microsoft-com:office:spreadsheet'>
: <Styles>
: <Style ss:ID='s1'>
: <Alignment ss:Horizontal='Center' ss:Vertical='Top' ss:WrapText='1'/>
: <Font ss:FontName='宋体' x:CharSet='134' ss:Size='12' ss:Bold='1'/>
: </Style>
: </Styles>
: <Worksheet ss:Name='sheet1'>
: <Table>
: <Row>
: <Cell ss:StyleID='s1'>
: <Data ss:Type='String'>
: Thank you!
: </Data>
: </Cell>
: </Row>
: </Table>
: </Worksheet>
: </Workbook>
: 从上面就可以了解,我们可以使用很多种已经定义好的Tag,来达到我们的需求
: 只是想请问,该如何查询有哪些Tag可以使用、设定等等的资讯呢?
: 例如:
: <Style>可以设样式
: <Alignment ss:Horizontal='Center'>的「ss:Horizontal='Center'」可让栏位置中
: <Worksheet ss:Name='tt'>可以建立一个名为tt的工作表
: …等等的资讯
: 刚拜了一下Google大神,可是找不到我所需要的完整资讯
: 应该是我查询的方向错误了
: 还望前辈告知!
: 另外藉此回覆 qrtt1兄,
: 使用者有这样的需求,必然有他的原因
: 而我现在开发一套让对方使用的软体
: 我想,势必需先遵循使用者的需求,来设计、开发
: 让软体,符合使用者的需求
: 而不是让使用者改变需求,来配合这套软体
: 目前针对使用者这项需求
: 有困难处
: 但我觉得这困难处,是因为我的知识、经验不足所造成的
: 并非没有办法可以解决
: 所以我选择了先寻找、徵询解决办法
: 再确定无法可解後
: 再和使用者沟通,并表明此项需求无法达成的原因
: 让使用者接受,进而改变他的需求
: 以上是我的一点想法
: 而目前的需求总结如下
: 「必须能够将海量资料(txt)、JTable、JLabel、JFreeChart等物件资料,存放至同1个Xls档,
: 依使用者选择存放至相同、或不同工作表皆可」
: 想请问qrtt1兄,是否在我描述的需求里
: 发现了根本不可行的关键点呢?
: 如果有的话,还麻烦告知,让我少走冤枉路…>"<
: (ps.Excel 1个Sheet因版本关系,最多只能65535列的问题…我想使用者会自觉不强求的…XD)
: 哎…刚试了一下,想说把XML格式写出来的Xls档开启,放入一张图後,存档
: 再用记事本开启,看里面的tag是怎麽写的,这样就可以解决我的这项需求了
: 可是却发现…放入一张图,要存档时,只能另存新档…哎…突然好难过啊…>"<
: 这样是否就代表了没办法利用这种方式将图放入Xls档呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 98.204.128.203
※ 编辑: willieliao 来自: 98.204.128.203 (03/29 23:49)
1F:推 TonyQ:推! 03/30 00:51
2F:推 kojinvhfsk:先推再研究,谢谢! 03/30 07:47