作者flu (Crazy Rhythm)
看板Perl
标题Re: [问题] 关於excel cell format
时间Wed Apr 1 04:01:06 2015
※ 引述《bonsaixxx (爆菊非主流)》之铭言:
: 想请问各位大大
: 我想把一个既有的 xlsx档案完全复制道一个新的xlsx档
: 因为目前的SaveParser module不支援xlsx功能
: 所以我用for 回圈暴力硬上,配上Writer::XLSX这个模组一个 cell一个cell复制
: 有个问题是我不知道要怎麽设定栏宽 跟color那些cell的设定
: 有在网路上找到
: format_orgin=cell->get_format
: 然後在
: format_new= copy(format_org)
: 这种方式
: 可是好像没用@@
: 想请问有没有更便捷的方法
: 谢谢
假设你说的Writer::XLSX是指Excel::Writer::XLSX
栏宽设定值是用set_column()
写入xlsx也是靠这module
要取得栏宽的话 Spreadsheet::ParseXLSX (下称SPX) 可以处理xlsx档
而它内部是用parse xls档的 Spreadsheet::ParseExcel 的物件在储存内部资料
虽然SPX的文件没说得很清楚,
不过我大约看了一下它的确写有处理xlsx的栏宽的程式码
应该可以用
Spreadsheet::ParseExcel::Worksheet::get_default_col_width() 取得栏宽吧
至於另一个xlsx parser---- Spreadsheet::XLSX 约略看了一下功能有些简略,
加上似乎相较起来年久失修(近5年),
所以没有再细看了
其他读写xlsx or xls的方式……
ODF::lpOD, win32 OLE 或透过 Libreoffice的api当中介?
可能要再研究看看
--
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Perl/M.1427832068.A.A4B.html
1F:推 CindyLinz: 我上次用 xlsx 试了一些方法.... 最後是用 IO::Compres 04/01 18:15
2F:→ CindyLinz: s::Zip 和 IO::Uncompress::Unzip 去读写里面的 xml 档 04/01 18:16
3F:→ CindyLinz: 还蛮快的 XD 04/01 18:16
4F:→ flu: 楼上拥有出个M$ office document parser的潜力 \(╯▽╰) / 04/01 20:01
※ 编辑: flu (36.234.220.68), 04/01/2015 20:02:24
5F:→ CindyLinz: 不完整啊~ 只有刚好作到我要的功能而已 ^^| 04/02 16:37