word导入导出自定义属性列表

Sub ExportCustom()
‘
‘ ExportCustom 宏
‘ 导出自定义属性到custom.txt
‘
    Dim lFileNumber As Long
    Dim sFilePath As String
    Dim current As Object
    Set current = ActiveDocument
    sFilePath = current.Path + "\Custom.txt"
    lFileNumber = FreeFile()
    Open sFilePath For Output As #lFileNumber
    Dim i As Integer
    For Each objProp In current.CustomDocumentProperties
        Dim bRegular As Boolean
        bRegular = True
        If objProp.Name = "ProprietaryDeclaration" Then
            bRegular = False
        End If
        If objProp.Name = "slevel" Then
            bRegular = False
        End If
        If objProp.Name = "slevelui" Then
            bRegular = False
        End If
        If objProp.Name = "sflag" Then
            bRegular = False
        End If
        If bRegular Then
            Print #lFileNumber, objProp.Name & vbTab & objProp.Value
        End If
    Next

    Close #lFileNumber
    MsgBox "导出完毕!"
End Sub
Sub UpdateCustom()
‘
‘ UpdateCustom 宏
‘
‘
    Dim strUpdateContent As String
    Dim strNotFoundProperty  As String

    Dim current As Object
    Set current = ActiveDocument
    Dim lFileNumber As Long
    lFileNumber = FreeFile()
    Open current.Path + "\Custom.txt" For Input As #lFileNumber ‘ 打开文件。
    Dim TextLine As String
    Dim tmpObj As Object
    Dim iTabIndex As Integer
    Do While Not EOF(lFileNumber) ‘ 循环至文件尾。
        Line Input #lFileNumber, TextLine ‘ 读入一行数据并将其赋予某变量。

        If Not (TextLine = "") Then

            iTabIndex = InStr(TextLine, vbTab)
            If Not (iTabIndex = 0 Or iTabIndex = 1 Or iTabIndex = Len(TextLine)) Then

                Dim strName As String
                Dim strValue As String

                strName = Mid(TextLine, 1, iTabIndex - 1)
                Debug.Print strName ‘ 在调试窗口中显示数据。
                strValue = Mid(TextLine, iTabIndex + 1)
                Debug.Print strValue ‘ 在调试窗口中显示数据。

                On Error Resume Next
                Set tmpObj = Nothing
                Set tmpObj = current.CustomDocumentProperties(strName)
                On Error GoTo 0
                If Not (tmpObj Is Nothing) Then
                    If (tmpObj.Type = msoPropertyTypeString And (Not (tmpObj.Value = strValue))) Then
                        strUpdateContent = strUpdateContent & vbCrLf & tmpObj.Name & vbTab & tmpObj.Value & "==>>" & strValue
                        tmpObj.Value = strValue
                    End If
                Else
                    strNotFoundProperty = strNotFoundProperty & vbCrLf & strName
                End If
            End If

        End If

    Loop

    Dim strMsg As String
    If Not (strUpdateContent = "") Then
        strMsg = strMsg & "Update content:" & strUpdateContent
    End If

    If Not (strNotFoundProperty = "") Then
        strMsg = strMsg & "Not found property:" & strNotFoundProperty
    End If

    If (strMsg = "") Then
        strMsg = "No Update"
    End If

    MsgBox strMsg

End Sub

Sub SortCustom()
‘
‘ SortCustom 宏
‘
‘
    Dim current As Object
    Set current = ActiveDocument
    sFilePath = current.Path + "\Custom.txt"
    Dim propertys() As Object
    ‘Set propertys = current.CustomDocumentProperties
    Dim iPropLen As Integer
    iPropLen = current.CustomDocumentProperties.Count
    Dim i As Integer
    Dim iTmpPropLen As Integer
    iTmpPropLen = iPropLen
    Dim bFlag As Boolean
    bFlag = True
    Do While bFlag And iTmpPropLen > 1
        bFlag = False
        For i = 1 To (iTmpPropLen - 1)
            If current.CustomDocumentProperties(i).Name > current.CustomDocumentProperties(i + 1).Name Then
                bFlag = True

                Dim tmpProp1 As Object
                Set tmpProp1 = current.CustomDocumentProperties(i)
                Dim tmpProp2 As Object
                Set tmpProp2 = current.CustomDocumentProperties(i + 1)

                Dim tmpPropName As String
                Dim tmpPropType As Integer
                Dim tmpPropLinkToContent As Boolean
                Dim tmpPropValue As String
                tmpPropName = tmpProp1.Name
                tmpPropType = tmpProp1.Type
                tmpPropLinkToContent = tmpProp1.LinkToContent
                tmpPropValue = tmpProp1.Value
                tmpProp1.Name = "tmp"
                tmpProp1.Type = msoPropertyTypeString
                tmpProp1.LinkToContent = False
                tmpProp1.Value = "tmp"

                Dim tmpPropName2 As String
                Dim tmpPropType2 As Integer
                Dim tmpPropLinkToContent2 As Boolean
                Dim tmpPropValue2 As String
                tmpPropName2 = tmpProp2.Name
                tmpPropType2 = tmpProp2.Type
                tmpPropLinkToContent2 = tmpProp2.LinkToContent
                tmpPropValue2 = tmpProp2.Value
                tmpProp2.Name = tmpPropName
                tmpProp2.Type = tmpPropType
                tmpProp2.LinkToContent = tmpPropLinkToContent
                tmpProp2.Value = tmpPropValue

                tmpProp1.Name = tmpPropName2
                tmpProp1.Type = tmpPropType2
                tmpProp1.LinkToContent = tmpPropLinkToContent2
                tmpProp1.Value = tmpPropValue2
            End If
        Next
        iTmpPropLen = iTmpPropLen - 1
    Loop

    MsgBox "排序完毕!"
End Sub
时间: 2024-08-25 02:09:52

word导入导出自定义属性列表的相关文章

文件上传下下载(不包含断点续传) Excel,Word导入导出基础

1.文件上传下载(MVC应用) 视图:form表单,编码方式为multipart/form-data <body> <div> <form action="/Demo/FileUpload" enctype="multipart/form-data" method="post"> <input id="f1" type="file" name="f1&qu

Java导入导出Excel和Word

目的 实现Excel/Word导入导出,分以下步骤 导入 上传文件 解析Excel/Word里面的内容 导出 生成Excel/Word文件 文件下载 如何实现 上传文件----------Commons FileUpload上传组件 Excel/Word-------Apache POI----Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 下载文件----------ServletOutputStream直接输出文

数据库数据导入导出系列之五 C#实现动态生成Word(转)

1. 一个控制台例子,实现动态生成Word. 首先,添加引用:COM->Microsoft Word 11.0 Object Library. 2. 介绍几篇牛人写的关于操作Word的文章 [分享]一段导出到word模版的代码 http://www.cnblogs.com/goody9807/archive/2005/08/25/222526.html 再谈word2003编程 http://www.cnblogs.com/Andmm/archive/2008/06/18/1224422.htm

Excel导入导出的业务进化场景及组件化的设计方案(转)

1:前言 看过我文章的网友们都知道,通常前言都是我用来打酱油扯点闲情的. 自从写了上面一篇文章之后,领导就找我谈话了,怕我有什么想不开. 所以上一篇的(下)篇,目前先不出来了,哪天我异地二次回忆的时候,再分享分享. 话说最近外面IT行情飞涨还咋的,人都飞哪去了呢,听说各地的军情都进入紧急状态了. 回归下正题,今天就抽点时间,写写技术文,和大伙分享一下近年在框架设计上的取的一些技术成果. 2:项目背景 在针对运营商(移动.联通.电信.铁塔)的信息类的系统中,由于相关的从业人员习惯于Excel的办公

netsh导入导出IPSec配置策略

C:\Users\XYY>netsh ? //首先查看netsh 用法: netsh [-a AliasFile] [-c Context] [-r RemoteMachine] [-u [DomainName\]UserName] [-p Password | *] [Command | -f ScriptFile] 下列指令有效: 此上下文中的命令:? - 显示命令列表.add - 在项目列表上添加一个配置项目.advfirewall - 更改到 `netsh advfirewall' 上下

excel导入导出优化

对于上一篇excel中出现的问题,在excel导入导出中都做了优化.还是eclipse+jdk1.8,但是这个项目是一个web项目,需要配合Tomcat服务器,并且使用了SSH框架, I/O操作过多 首先,对于I/O操作过多,那么就不像之前一样,一条一条的添加或者更新;而且凑齐一堆,也就是一个list集合,然后统一的批量保存. 使用SessionFactory获取当前的session,然后调用session的persist方法,保存实体.只是设置了一个批量的量值.每到30条数据,就将缓存同步到数

expdp impdp 数据库导入导出命令详解

一.创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建. create directory dpdata1 as 'd:\test\dump'; 二.查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错) select * from dba_directories; 三.给scott用户赋予在指定目录的操作权限,最好以system等管理员赋予. grant read,write on directory dpdata

exp/expdp 与 imp/impdp命令导入导出数据库详解

一.exp命令导出数据库 如何使exp的帮助以不同的字符集显示:set nls_lang=simplified chinese_china.zhs16gbk,通过设置环境变量,可以让exp的帮助以中文显示,如果set nls_lang=American_america.字符集,那么帮助就是英文的了. 参数: 1.1  导出用户全部数据 exp 登录名称/用户密码@服务命名 FILE=文件存储的路径以及名称 log=日志存储的路径以及名称 FULL=Y(表示导出全部数据,如视图.索引关联关系等等全

java实现文件批量导入导出实例(兼容xls,xlsx)

1.介绍 java实现文件的导入导出数据库,目前在大部分系统中是比较常见的功能了,今天写个小demo来理解其原理,没接触过的同学也可以看看参考下. 目前我所接触过的导入导出技术主要有POI和iReport,poi主要作为一些数据批量导入数据库,iReport做报表导出.另外还有jxl类似poi的方式,不过貌似很久没跟新了,2007之后的office好像也不支持,这里就不说了. 2.POI使用详解 2.1 什么是Apache POI? Apache POI是Apache软件基金会的开放源码函式库,