[标题]使用 text_io 输出成 excel 格式的突破性发现(SLK)

[发贴人]armok
[分类]FORM分类.输出成EXCEL
--------------------------------------------
到目前为止,我认为 text_io 输入成 excel 文件,是唯一可以满足 c/s 及 b/s 方式下的应用,并且,编程量非常小,排错也很容易。

但目前,只能实现文本单元格,公式等。如果表达文字格式,如指定字体号,对中等,我还找不到方法。

刚才在试验excel的导出格式时,无意发现一种很古老的slk格式,可以满足这个要求。

以下是使用 slk 的例子:

------------這個圖片已經看不到了----------------

[img]http://sites.google.com/site/oradevfiles003/files_1/armok0120760.jpg[/img]
-----------------------------------------------------

它的详细内容为:

ID;PWXL;N;E
P;PGeneral
P;P0
P;P0.00
P;P#,##0
P;P#,##0.00
P;P#,##0;;/-#,##0
P;P#,##0;;[Red]/-#,##0
P;P#,##0.00;;/-#,##0.00
P;P#,##0.00;;[Red]/-#,##0.00
P;P"$"#,##0;;"$"/-#,##0
P;P"$"#,##0;;[Red]"$"/-#,##0
P;P"$"#,##0.00;;"$"/-#,##0.00
P;P"$"#,##0.00;;[Red]"$"/-#,##0.00
P;P0%
P;P0.00%
P;P0.00E+00
P;P##0.0E+0
P;P#/ ?/?
P;P#/ ??/??
P;Pyyyy/m/d
P;Pd/mmm/yy
P;Pd/mmm
P;Pmmm/yy
P;Ph:mm/ AM/PM
P;Ph:mm:ss/ AM/PM
P;Ph:mm
P;Ph:mm:ss
P;Pyyyy/m/d/ h:mm
P;Pmm:ss
P;Pmm:ss.0
P;P@
P;P[h]:mm:ss
P;P_ "$"* #,##0_ ;;_ "$"* /-#,##0_ ;;_ "$"* "-"_ ;;_ @_ 
P;P_ * #,##0_ ;;_ * /-#,##0_ ;;_ * "-"_ ;;_ @_ 
P;P_ "$"* #,##0.00_ ;;_ "$"* /-#,##0.00_ ;;_ "$"* "-"??_ ;;_ @_ 
P;P_ * #,##0.00_ ;;_ * /-#,##0.00_ ;;_ * "-"??_ ;;_ @_ 
P;P/$#,##0_);;/(/$#,##0/)
P;P/$#,##0_);;[Red]/(/$#,##0/)
P;P/$#,##0.00_);;/(/$#,##0.00/)
P;P/$#,##0.00_);;[Red]/(/$#,##0.00/)
P;Pm/d/yy
P;Pyyyy"年"m"月"d"日"
P;Ph"时"mm"分"
P;Ph"时"mm"分"ss"秒"
P;Pyyyy"年"m"月"
P;Pm"月"d"日"
P;P上午/下午h"时"mm"分"
P;P上午/下午h"时"mm"分"ss"秒"
P;P"是";;"是";;"否"
P;P"真";;"真";;"假"
P;P"开";;"开";;"关"
P;F宋体;M240
P;F宋体;M240
P;F宋体;M240
P;F宋体;M240
P;E宋体;M240
P;E宋体;M240
P;E宋体;M240
P;E宋体;M240
P;E宋体;M240
P;E宋体;M180
P;ETimes New Roman;M240
P;ETimes New Roman;M240;L11
P;E宋体;M240;SU;L13
P;E宋体;M240;SU;L37
P;ETimes New Roman;M360;L11
P;E黑体;M360;L11
F;P0;DG0G8;M285
B;Y1;X2;D0 0 0 1
O;L;D;V0;K47;G100 0.001
F;W1 1 14
F;M510;R1
F;P0;FG0C;Y1;X1
C;K"这是对中"
F;SM16;X2
C;K"红色"
E

不要被这么长的代码吓倒,真正有用的是后面几句话。前面的都是通用的声明,完全可以做成一个过程。

但我一时找不到有关slk的说明文档。谁可以找到?

如果这个问题解决,将是forms的报表及数据导出的一个很大的突破。

以上slk文件,可以从这里下载。使用excel可直接打开,如果使用记事本打开,就是以上代码。
大家可以在在excel修改这个文件,然后存盘看看有什么变化。

------------------------------------------------

[回复人]armok
--------------------------------------------
经过半天的测试及研究,终于彻底了解SLK这种格式。资料整理如下:

(原创,如需要转载,请注明作者及出处)。

B 单元分隔

C 数据单元

E 文件的结尾

F 单元格式参数

ID SLK文件的标识记录
  
P 时间日期格式

W  列宽

X  水平坐标

Y  垂直坐标

第一行必须是ID

P 记录必须跟着ID

B记录必须跟着P

;D 或 :G 必须出现在C记录

最后必须以E结尾

举例如下(将 ---所在的行 删除后,这个SLK格式可直接使用,它是最简化的格式):

----至少保留这两行

ID;PWXL;N;E   
P;PGeneral

----第一行P;E 是全部内容的缺省字体及字号。M为字号,
---- L为颜色,1黑 2无 3红 4绿 5深蓝 6黄 7洋红 8天兰 9黑 10无
---- 第2行开始可为后面调用,第二行的表达式为SM1

P;E黑体;M260
P;E黑体;M960;L5
P;E黑体;M360
P;E黑体;M960

---- 定义列宽,分别是1至4列

F;W1 1 14
F;W2 2 24
F;W3 3 34
F;W4 4 10

C;Y1;X1;K"Name"
C;Y1;X2;K"Title"
C;Y1;X3;K"Salary"
C;Y1;X4;K"Linenumber"
C;Y2;X1;K"Jari"
C;Y2;X2;K"Programmer"
C;Y2;X3;K"Less"
C;Y2;X4;K 1
C;Y3;X1;K"Michael"

-- FG0C 对中   FG0R 对右 SM

F;FG0C;SM1;Y3;X2
C;K"Boss"

C;Y3;X3;K"More"
C;Y3;X4;K2
E

关于公式的补充

C;X3;K12;ERC[-2]*RC[-1] 表示等于左边2格与左边1格的相乘。
R[-1]C[-2] 表示左边一行及左边两列
RC[-1] 表示同一行及左边一列

SLK格式的限制

SYLK(符号链接)格式
按照 SYLK(符号链接)(*.slk )格式,只能保存活动工作表中的数值和公式,以及有限的单元格格式。

可以保存所有的数据行,每个单元格最多可以保存 255 个字符。

如果 Microsoft Excel 中包含 SYLK 格式不支持的函数,Microsoft Excel 将在保存文件之前计算这些函数,并以计算结果数值替换公式本身。

绝大部分的文本格式都将保存;转换后的文本将采用单元格中第一个字符的文本格式。旋转的文本、合并的单元格,以及文本的水平及垂直对齐设置均将失效。如果在 Microsoft Excel 中重

新打开转换后的 SYLK 工作表,其中的字体颜色可能转换为其他的颜色。边框将转换为单直线边框。单元格底纹将转换为灰色底纹。

由“页面设置”对话框(“文件”菜单)指定的大部分设置和人工分页符都将失效。

保存单元格批注;如果在 Microsoft Excel 中重新打开转换后的 SYLK 工作表,可以显示这些单元格批注。

图形、嵌入式图表、对象、窗体控件、超级链接、有效数据设置、条件格式和工作表的其他属性将失效。

Visual Basic 应该程序代码失效。

保存数据透视表报表当前视图中所显示的数据;而所有其他数据透视表报表数据将全部丢失。

如果转换的是由 Microsoft Excel for Macintosh 1.5 或以前版本生成的文件,请单击“工具”菜单中的“选项”命令,清除对话框中“重新计算”选项卡上的“1904 年日期系统”复选框,然后在保存文件之前确保所有数据均可见。

-------------------------------------------

范例:

ID;PWXL;N;E

P;PGeneral

P;E黑体;M260

P;E黑体;M960;L5

P;E黑体;M360

P;E黑体;M960

F;W1 1 14

F;W2 2 24

F;W3 3 34

F;W4 4 10

C;Y1;X1;K"Name"

C;Y1;X2;K"Title"

C;Y1;X3;K"Salary"

C;Y1;X4;K"Linenumber"

C;Y2;X1;K"Jari"

C;Y2;X2;K"Programmer"

C;Y2;X3;K"Less"

C;Y2;X4;K 1

C;Y3;X1;K"Michael"

F;FG0C;SM1;Y3;X2

C;K"Boss"

C;Y3;X3;K"More"

C;Y3;X4;K2

E

将以上内容贴后一个文本里。注意,第一行不能是空行。要以ID开头。

再将你的文本改成 slk后缀就可以用excel直接打开了。

不过,有点遗憾的是,这种SLK格式不支持底色,也不支持单元格合并。(详细见上面的说明)

不过,能够向左向右及对中,及可以设置字号与字体颜色,我已经很满意的啦。

--------------------------------------------
本文整理并转载自:阿莫OracleDeveloper论坛

使用 text_io 输出成 excel 格式的突破性发现(SLK)相关推荐

  1. 关于jsp页面转换成excel格式下载遇到问题及解决

    jsp页面转成excel格式的实现思路: 1.使用poi包:poi-bin-3.9-20121203 下载连接地址:http://www.apache.org/dyn/closer.cgi/poi/r ...

  2. pdf文件怎么转换成excel格式?

    在办公中文件格式之间的相互转换是很常见的操作方式,就像把不能直接进行编辑的PDF文件转换成excel表格,就可以帮助我们更快更好的做好数据,比起使用传统的编辑方式,显然转换来的效率更高.那pdf文件怎 ...

  3. allegropcb怎么导出成cad_私藏技巧分享!CAD中的表格坐标快速输出成Excel!

    我们在测量放样过程中,会遇到很多点的坐标需要输入到手簿里面,如果坐标文件是Excel表格.txt文本文档.Word或者dat文件都还好说,但如果遇见CAD里面的表格坐标文件就会很麻烦了,如图1所示,相 ...

  4. 如何将PDF格式转换成Excel格式?

    PDF和Excel这两种格式在我们的日常办公中经常需要用到,有时候PDF带有很多表格,但PDF格式的特殊性,不能进行类似Excel的操作,虽然有PDF编辑器可以直接编辑,但局限性还是很明显的,这时就需 ...

  5. 如何将word转换成excel格式

    说到编辑表格大家第一时间想到的应该都是excel格式的,但我们有时也会在其他文档里发现表格内容,这时候我们就需要将其转换成excel格式方便我们编辑,下面就以word表格转换成excel格式为例,介绍 ...

  6. 批量将word转换成excel格式的方法

    还在为如何转换文件而烦恼?如果没有一个好的转换方法的话,说实话还真的是会很头痛.今天小编就分享的大家一个万能的方法,完成各种文件转换根本不是事,下面就以word转换成excel格式为例吧. 今天介绍的 ...

  7. 怎么把PDF转换成Excel格式呢?

    现在许多办公室工作人员都会使用PDF格式进行日常文件传输和浏览.这样可以很好的固定各种排版格式,形成清晰美观的显示效果.然而,当我们浏览一些文件时,我们会发现错误.如果我们要修改它们,我们必须将文件从 ...

  8. 使用Python读取LabVIEW TDMS 格式文件转成Excel格式+多进程版本

    使用Python读取LabVIEW TDMS 格式文件转成Excel格式+多进程版本 文章目录 使用Python读取LabVIEW TDMS 格式文件转成Excel格式+多进程版本 前言: 背景 tm ...

  9. word转换成excel格式的完美方法

    word文档中有表格这是屡见不鲜的事,大家或多或少都会碰到一些,想要完美的编辑这些表格文件,将器转换成excel格式是最好的方法,但是怎么转换呢?直接复制效果不好?别着急,下面就来说说完美的转换方法. ...

最新文章

  1. 又在上海!这场人工智能大会,由图灵奖得主等带来机器学习、知识工程等干货分享!...
  2. 前端性能之回流与重绘(reflow repaint)
  3. 陈松松:刚入门的视频营销新人,需要做哪些准备?
  4. OC:数组排序、时间格式化字符串
  5. Eclipse中输入系统变量和运行参数--转
  6. Consul入门06 - 键/值对数据
  7. redis 使用管道pipeline和不使用管道的性能对比
  8. ADB server didn't ACK的解决方法
  9. 多用户企业文件管理系统源码_固定资产管理系统的细节分析
  10. 【C】@程序员,我们送给你一个成熟的Excel导入导出组件
  11. 自己动手写ORM框架(六):实现查询功能FindById方法
  12. java向上转型不能调用子类独有的方法
  13. linux-x86_64 error,Linux-x86_64 Error: 5: Input/output error的问题
  14. 在Silverlight 5 项目中创建单元测试项目
  15. js导出的xlsx无法打开_遇到U盘无法打开,属性显示0字节这样的问题?数据该如何导出?...
  16. Mac版Charles免费安装及使用
  17. 基于java的小额支付管理平台
  18. 初中数学分几个模块_初中数学所有概念! 初中数学一共可以分为几个模块,分别是什么?...
  19. python安装失败0x80240017
  20. The Heads-Up Grid 让你的HTML页面具有辅助线网格功能

热门文章

  1. mapserver4.8.3艰难的编译过程!不保证看得懂喔
  2. stanford parser的python使用
  3. vmware中linux使用gparted调整磁盘大小并设置swap分区
  4. freopen的使用
  5. qmake 使用总结
  6. PHP微信小程序之获取并解密用户数据获取openId和unionId
  7. 分别定义Teacher(教师)类和Cadre(干部)类
  8. python savefig()保存的图片是空白的
  9. 计算机组成原理面试总结
  10. 即时通讯,对比 环信、融云、腾讯IM