zlzxtfl 发表于 2016-6-5 00:14:47

读取多行文字时,怎样去掉多行文字所设的格式

我在读取多行文字放到 EXECL时,多行文字带有设置的格式,怎样才能去掉

love1030312 发表于 2016-6-5 08:51:53

最黄最暴力的方法 炸掉

zlzxtfl 发表于 2016-6-5 12:14:54

呵呵…………

自贡黄明儒 发表于 2016-6-5 12:40:21

love1030312 发表于 2016-6-5 08:51
最黄最暴力的方法 炸掉

此法不可靠,爆破时会产生多个text。找到多行文字格式,去掉它

ㄘ丶转裑ㄧ灬 发表于 2016-6-6 19:22:09

本帖最后由 ㄘ丶转裑ㄧ灬 于 2016-6-6 19:44 编辑

阿甘更新的文字刷3.0里有提取多行文字,去除格式符号
源代码应该是Gu_xl写的,在他的转EXCEL里有看到过。。

http://bbs.mjtd.com/thread-96376-1-1.html

找到了:
http://bbs.xdcad.net/thread-669239-1-1.html

;提取多行文字,去除无用格式符号--来自明经
(defun mtext2text(MTextString / regex s)
(setq regex(vlax-create-object "Vbscript.RegExp")) ;引用正则表达式控件
(vlax-put-property regex "IgnoreCase" 0) ;不忽略大小写
(vlax-put-property regex "Global" 1) ;匹配方式,全文字匹配
(setq s MTextString)
   ;替换\\字符
(vlax-put-property regex "Pattern" "\\\\\\\\")
(setq s(vlax-invoke-methodregex "Replace" s (chr 1)))
   ;替换\{字符
(vlax-put-property regex "Pattern" "\\\\{")
(setq s(vlax-invoke-methodregex "Replace" s (chr 2)))
   ;替换\}字符
(vlax-put-property regex "Pattern" "\\\\}")
(setq s(vlax-invoke-methodregex "Replace" s (chr 3)))
   ;删除段落缩进格式
(vlax-put-property regex "Pattern" "\\\\pi(.[^;]*);")
(setq s(vlax-invoke-methodregex "Replace" s ""))
   ;删除制表符格式
(vlax-put-property regex "Pattern" "\\\\pt(.[^;]*);")
(setq s(vlax-invoke-methodregex "Replace" s ""))
   ;删除堆迭格式
(vlax-put-property regex "Pattern" "\\\\S(.[^;]*)(\\^|#|\\\\)(.[^;]*);")
(setq s(vlax-invoke-methodregex "Replace" s ""))
   ;删除字体、颜色、字高、字距、倾斜、字宽、对齐格式
(vlax-put-property regex "Pattern" "(\\\\F|\\\\f|\\\\C|\\\\H|\\\\\T|\\\\Q|\\\\W|\\\\A)(.[^;]*);")
(setq s(vlax-invoke-methodregex "Replace" s ""))
   ;删除下划线、删除线格式
(vlax-put-property regex "Pattern" "(\\\\L|\\\\O|\\\\l|\\\\o)")
(setq s(vlax-invoke-methodregex "Replace" s ""))
   ;删除不间断空格格式
(vlax-put-property regex "Pattern" "\\\\~")
(setq s(vlax-invoke-methodregex "Replace" s ""))
   ;删除换行符格式
(vlax-put-property regex "Pattern" "\\\\P")
(setq s(vlax-invoke-methodregex "Replace" s ""))
   ;删除换行符格式(针对Shift+Enter格式)
(vlax-put-property regex "Pattern" "\n")
(setq s(vlax-invoke-methodregex "Replace" s ""))
   ;删除{}
(vlax-put-property regex "Pattern" "({|})")
(setq s(vlax-invoke-methodregex "Replace" s ""))
   
   ;替换回\\,\{,\}字符
(vlax-put-property regex "Pattern" "\\x01")
(setq s(vlax-invoke-methodregex "Replace" s "\\"))
(vlax-put-property regex "Pattern" "\\x02")
(setq s(vlax-invoke-methodregex "Replace" s "{"))
(vlax-put-property regex "Pattern" "\\x03")
(setq s(vlax-invoke-methodregex "Replace" s "}"))
   
(vlax-release-object regex)
s
)

自贡黄明儒 发表于 2016-6-6 20:13:29

ㄘ丶转裑ㄧ灬 发表于 2016-6-6 19:22
阿甘更新的文字刷3.0里有提取多行文字,去除格式符号
源代码应该是Gu_xl写的,在他的转EXCEL里有看到过。。 ...

粗看了一下,好像没包括完。
页: [1]
查看完整版本: 读取多行文字时,怎样去掉多行文字所设的格式