Office加载项

出自我的个人主页 Alvin Blog

前言

前一段时间公司做了有关Excel 加载项的开发,也遇到了很多坑,所以在此记录一下,有两个原因,1.留给以后在用到加载项的时候,复习所用,避免 跳进同一个坑里。2.留给其他做加载项的人一个参考

概述

此处只大概说一下,如果想了解详细的,请到office加载项官网

Office 开发有很多种选择

  • VBA 参考浅谈Excel开发
  • Shared Addin 参考浅谈Excel开发
  • VSTO 参考VSTO官方文档
  • Office web加载项

加载项的组成部分

  • 清单文件,mainfast.xml 该文件包含了以下内容
    • 外接程序的显示名称、说明、ID、版本和默认区域设置。
    • web项目的地址
    • 加载项的菜单样式以及布局
    • 外接程序的权限级别和数据访问要求。
  • web项目,任何web项目均可,但是一定要兼容ie11,因为office调用的是本地的ie11浏览器。

功能

  • 通过mainfast.xml文件控制菜单,Office加载项_第1张图片
  • web项目是通过点击菜单展示在任务栏,展示效果Office加载项_第2张图片
  • web项目中的js文件可以控制Office,操作Office的文件,例如向Excel输入内容

开始做一个项目

跟官网开发的步骤有些不同,但是两种方法均可

由于我之前开发的是Excel加载项,所以接下来的例子,均是Excel加载项开发的例子,其他的加载项应该同理。

第一、新建Excel 外接程序,使用的开发工具是vs2017。
Office加载项_第3张图片
新建项目的过程中,你会发现它有两个选项,默认选择第一个,第二个是更丰富的外接程序,可以实现更多Excel的自定义行为。
Office加载项_第4张图片
项目建好之后,项目中的xml文件已经在里面了,项目新建之后会出现默认的节点,并且已经给出了注释,注释非常详细。此处指介绍一些重要的节点,如果感兴趣到此处去了解

  • ID: 此处创建GUID可以去线上生成,vs2017也自带创建guid。工具->创建GUID
 
  2a18a912-de33-4f62-92f7-ce7c2899ea77
  • AppDomains:由于浏览器是不允许跨域访问的,你必须要把你web的域名放在此处,才可以使用,如果你想使用多个web项目,那就都在此处列出域名,比如我测试的地址是localhost:8081

  
    localhost:8081
    gooogle.com
    mywebsite.com
  
  • 默认访问的首页,此处的~remoteAppUrl即是你的url,在测试时会自动替换成你的web服务地址,在上线发布时,需要手动替换

    
  
  • Host:此节点下的子节点即是你展示在Excel顶部的菜单栏,使用节点来控制显示
  • Resources:此节点存放所有的资源,比如菜单名称、要访问的url、图片的地址
  • web项目开始后执行的

            
            
            <!-- 入门标注的描述。ResID 指向 LongString 资源 -->
            <Description resid="Contoso.GetStarted.Description"/>
            <!-- 指向详细说明外接程序使用方法的 URL 资源。 -->
            <LearnMoreUrl resid="Contoso.GetStarted.LearnMoreUrl"/>
          </GetStarted></code></pre> 
   <ul> 
    <li>FunctionFile:如果想在菜单栏里操作Excel文件,比如要写东西,必须要在此处增加那个包含js的html文件</li> 
   </ul> 
   <pre><code><!-- 函数文件是包含 JavaScript 的 HTML 页面,将在此页面中调用用于 ExecuteAction 的函数。             将 FunctionFile 视为代码隐藏 ExecuteFunction。 -->
          <FunctionFile resid="Contoso.DesktopFunctionFile.Url" /></code></pre> 
   <ul> 
    <li>菜单区域:分为组、一级菜单、二级菜单。只能到二级菜单。</li> 
   </ul> 
   <pre><code>  <!-- PrimaryCommandSurface 为 Office 主功能区。 -->
          <ExtensionPoint xsi:type="PrimaryCommandSurface">
            <!-- 使用 OfficeTab 来扩展现有选项卡。使用 CustomTab 来创建新选项卡。 -->
            <OfficeTab id="TabHome">
              <!-- 确保为组提供唯一 ID。建议 ID 为使用公司名的命名空间。 -->
              <Group id="Contoso.Group1">
                <!-- 为组指定标签。resid 必须指向 ShortString 资源。 -->
                <Label resid="Contoso.Group1Label" />
                <!-- 图标。必需大小: 16、32、80,可选大小: 20、24、40、48、64。强烈建议为大 UX 提供所有大小。 -->
                <!-- 使用 PNG 图标。资源部分中的所有 URL 必须使用 HTTPS。 -->
                <Icon>
                  <bt:Image size="16" resid="Contoso.tpicon_16x16" />
                  <bt:Image size="32" resid="Contoso.tpicon_32x32" />
                  <bt:Image size="80" resid="Contoso.tpicon_80x80" />
                </Icon>

                <!-- 控件。可以为“按钮”类型或“菜单”类型。 -->
                <Control xsi:type="Button" id="Contoso.TaskpaneButton">
                  <Label resid="Contoso.TaskpaneButton.Label" />
                  <Supertip>
                    <!-- 工具提示标题。resid 必须指向 ShortString 资源。 -->
                    <Title resid="Contoso.TaskpaneButton.Label" />
                    <!-- 工具提示标题。resid 必须指向 LongString 资源。 -->
                    <Description resid="Contoso.TaskpaneButton.Tooltip" />
                  </Supertip>
                  <Icon>
                    <bt:Image size="16" resid="Contoso.tpicon_16x16" />
                    <bt:Image size="32" resid="Contoso.tpicon_32x32" />
                    <bt:Image size="80" resid="Contoso.tpicon_80x80" />
                  </Icon>

                  <!-- 这是触发命令时的操作(例如单击功能区)。支持的操作为 ExecuteFunction 或 ShowTaskpane。 -->
                  <Action xsi:type="ShowTaskpane">
                    <TaskpaneId>ButtonId1</TaskpaneId>
                    <!-- 提供将显示在任务窗格上的位置的 URL 资源 ID。 -->
                    <SourceLocation resid="Contoso.Taskpane.Url" />
                  </Action>
                </Control>
              </Group>
            </OfficeTab>
          </ExtensionPoint></code></pre> 
   <p>配置好自己的东西之后,F5运行,Excel便会出现初始化好的项目,其中excel单元格里的内容是js写入的,具体如何写入,下文分解。右边侧栏则是需要开发的web项目。<a href="http://img.e-com-net.com/image/info8/3b82955fa5f9494fb1a9c8ddeae891fb.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/3b82955fa5f9494fb1a9c8ddeae891fb.jpg" alt="Office加载项_第5张图片" width="650" height="336" style="border:1px solid black;"></a></p> 
   <blockquote> 
    <p>第二、创建web项目,其实在新建项目时,web项目已经创建好了。可以在这个项目的基础上开发jQuery项目。如果不想用这个,也需要在此框架的基础上开发其他项目。web项目和加载项项目,是两个完全独立的项目,放在一起只是为了测试方便,web项目独立部署,只是如果你想要让web操作exce 的话,需要引入一些必要的文件与配置。</p> 
   </blockquote> 
   <p>目前创建有四种web项目的结构。除了jQuery,其他均是目前流行的组件化开发</p> 
   <ul> 
    <li>Angluar</li> 
    <li>Jquery</li> 
    <li>React</li> 
    <li>Vue</li> 
   </ul> 
   <p>因为接下来要使用vue开发前端,所以删除原框架无用的东西,将整个web项目删掉。<a href="http://img.e-com-net.com/image/info8/fc06ba2258044c5b8d86a08a0f8c6795.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/fc06ba2258044c5b8d86a08a0f8c6795.png" alt="Office加载项_第6张图片" width="353" height="606" style="border:1px solid black;"></a><br> 因为我使用的是Vue,所以此处只介绍Vue搭建站点,其他三种方式去Office加载项官网</p> 
   <ul> 
    <li><p>使用 vue-cli脚手架搭建项目,具体步骤就不写了,文档写的很详细参考</p></li> 
    <li><p>搭建好之后,运行vue项目,然后把xml文件里的~remoteurl,替换成你现在的项目地址就可以了。运行结果:<br><a href="http://img.e-com-net.com/image/info8/eb6f5587e7f64a168b698d4e0ce4af95.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/eb6f5587e7f64a168b698d4e0ce4af95.jpg" alt="Office加载项_第7张图片" width="650" height="333" style="border:1px solid black;"></a></p></li> 
   </ul> 
   <h2>项目地址</h2> 
   <p>项目链接</p> 
   <hr> 
  </div> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1277177996544851968"></div>
                    <script type="text/javascript" src="/views/front/js/chanyan.js"></script>
                    <!-- 文章页-底部 动态广告位 -->
                    <div class="youdao-fixed-ad" id="detail_ad_bottom"></div>
                </div>
                <div class="col-md-3">
                    <div class="row" id="ad">
                        <!-- 文章页-右侧1 动态广告位 -->
                        <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_1"> </div>
                        </div>
                        <!-- 文章页-右侧2 动态广告位 -->
                        <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_2"></div>
                        </div>
                        <!-- 文章页-右侧3 动态广告位 -->
                        <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_3"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="container">
        <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(Office加载项)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1940340341907451904.htm"
                           title="python实战:在Linux服务器上使用LibreOffice命令行批量接受Word文档的所有修订" target="_blank">python实战:在Linux服务器上使用LibreOffice命令行批量接受Word文档的所有修订</a>
                        <span class="text-muted">Ven%</span>
<a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/LiberOffice/1.htm">LiberOffice</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90%E5%8A%9E%E5%85%AC%E8%BD%AF%E4%BB%B6/1.htm">开源办公软件</a><a class="tag" taget="_blank" href="/search/linux%E5%8A%9E%E5%85%AC%E8%BD%AF%E4%BB%B6/1.htm">linux办公软件</a>
                        <div>在Linux服务器上使用LibreOffice命令行批量接受Word文档的所有修订一、背景与需求1.1常见场景1.2为什么选择LibreOffice二、环境准备2.1安装LibreOffice2.2验证安装三、Python实现代码四、代码解析4.1主要功能4.2错误处理4.3使用灵活性五、高级应用5.1批量处理多个文件5.2与其他工具集成六、注意事项七、总结在实际工作中,我们经常需要处理包含修订标</div>
                    </li>
                    <li><a href="/article/1940339835134865408.htm"
                           title="centos --libreoffice使用" target="_blank">centos --libreoffice使用</a>
                        <span class="text-muted"></span>

                        <div>您可以按照以下步骤在CentOS上安装LibreOffice:打开终端并使用root用户登录。运行以下命令更新系统软件包:yumupdate安装LibreOffice依赖项:yuminstall-ylibreoffice-headlesslibreoffice-writerlibreoffice-calclibreoffice-impress安装LibreOffice:yuminstall-yli</div>
                    </li>
                    <li><a href="/article/1940337439897874432.htm"
                           title="本地命令行工具libreoffice 完成docx转pdf" target="_blank">本地命令行工具libreoffice 完成docx转pdf</a>
                        <span class="text-muted">陈毛毛虫</span>
<a class="tag" taget="_blank" href="/search/pdf/1.htm">pdf</a><a class="tag" taget="_blank" href="/search/%E6%B1%87%E7%BC%96/1.htm">汇编</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/wps/1.htm">wps</a>
                        <div>文章目录前言一、libreoffice是什么?二、使用步骤1.安装libreoffice2.运行命令行工具总结前言最近忙着编写一些文档,需要转换成pdf,但是WPS的转pdf功能需要付费,上网搜了很久,搜到的不是付费的就是有大小限制的,于是想着本地使用python库转,结果效果不大理想,查阅资料后找到了这一款开源的本地命令行工具libreoffice一、libreoffice是什么?LibreOf</div>
                    </li>
                    <li><a href="/article/1940335422248906752.htm"
                           title="CentOS 7 安装LibreOffice 7.4.0 过程" target="_blank">CentOS 7 安装LibreOffice 7.4.0 过程</a>
                        <span class="text-muted">执到金</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/libreoffice/1.htm">libreoffice</a>
                        <div>CentOS7安装LibreOffice7.4.0过程参考了多个网上的LibreOffice安装教程,或多或少都有点过时了,所以我重新整理CentOS7安装LibreOffice7.4的过程,把安装过程中遇到的问题也进行了梳理。1、检查当前操作系统环境是否已经安装了LibreOffice。libreoffice--version如果已经安装,需要把自带的LibreOffice卸载。yumremov</div>
                    </li>
                    <li><a href="/article/1940332395693666304.htm"
                           title="Python的LibreOffice命令行详解:自动化文档处理的终极指南" target="_blank">Python的LibreOffice命令行详解:自动化文档处理的终极指南</a>
                        <span class="text-muted"></span>

                        <div>在数字化转型的浪潮中,文档处理自动化已成为提升效率的关键。LibreOffice作为开源办公软件的佼佼者,其命令行功能结合Python脚本,可实现从格式转换到复杂文档操作的全面自动化。本文将深入解析如何通过Python调用LibreOffice命令行工具,覆盖从基础操作到高级场景的完整流程。一、环境搭建:三步构建自动化基石1.安装LibreOffice与PythonLinux系统:sudoapti</div>
                    </li>
                    <li><a href="/article/1940168356279676928.htm"
                           title="如何免费正确安装微软的office全家桶" target="_blank">如何免费正确安装微软的office全家桶</a>
                        <span class="text-muted">李奥去哪了</span>
<a class="tag" taget="_blank" href="/search/office/1.htm">office</a>
                        <div>记录一下如何正确安装微软的office全家桶找到安装包傻瓜式安装找到安装包安装包在附件,大家可以自行进行下载傻瓜式安装操作一目了然,点你需要的就行了</div>
                    </li>
                    <li><a href="/article/1940083501604859904.htm"
                           title="Python|读取word文档表格内容" target="_blank">Python|读取word文档表格内容</a>
                        <span class="text-muted">算法与编程之美</span>
<a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95%E4%B9%8B%E7%BE%8E/1.htm">算法之美</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80/1.htm">编程语言</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98/1.htm">数据挖掘</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%8F%AF%E8%A7%86%E5%8C%96/1.htm">数据可视化</a>
                        <div>本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。引言在日常生活里,不管是办公、学习还是制作邀请函、请柬、简历等等,我们都会使用一个软件MicrosoftOfficeWord,OfficeWord是微软公司的一个收费文字处理应用程序,是最流行的文字处理程序之一,它虽功能强大,但简学易懂,但同时也有一个缺点,当一个Word文档储存的内容特别庞大的时候,使用者想要提取自己想要</div>
                    </li>
                    <li><a href="/article/1939788646924218368.htm"
                           title="计算机考试发送邮件教程,电脑考试怎么发邮件" target="_blank">计算机考试发送邮件教程,电脑考试怎么发邮件</a>
                        <span class="text-muted">weixin_42613017</span>
<a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%80%83%E8%AF%95%E5%8F%91%E9%80%81%E9%82%AE%E4%BB%B6%E6%95%99%E7%A8%8B/1.htm">计算机考试发送邮件教程</a>
                        <div>匿名用户1级2018-12-16回答从电脑上打开“OutlookExpress”;2、单击"工具栏"上"新邮件"图标撰写新邮件;3、填写收件人的地址、抄送人地址及邮件主题(收件人地址是不可缺省的),撰写邮件内容。如果事先用word或Excel已经撰写好附件,可以单击"工具栏"上的"附加"按钮添加附件。5、单击"工具栏"上的"发送"按钮,发送邮件。这样就完成了。一级MSOFFICE邮件收发是</div>
                    </li>
                    <li><a href="/article/1939543320300679168.htm"
                           title="Java使用documents4j将word和excel转pdf" target="_blank">Java使用documents4j将word和excel转pdf</a>
                        <span class="text-muted">药岩</span>
<a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C%E4%B8%AD%E7%9A%84%E9%82%A3%E4%BA%9B%E9%97%AE%E9%A2%98/1.htm">工作中的那些问题</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/word/1.htm">word</a><a class="tag" taget="_blank" href="/search/excel/1.htm">excel</a>
                        <div>pom.xml添加documents4j依赖com.documents4jdocuments4j-local1.0.3com.documents4jdocuments4j-transformer-msoffice-word1.0.3<dependency</div>
                    </li>
                    <li><a href="/article/1939508403235778560.htm"
                           title="Excel VBA 运行时错误1004’:方法‘Open’作用于对象‘Workbooks’时失败 的解决方法" target="_blank">Excel VBA 运行时错误1004’:方法‘Open’作用于对象‘Workbooks’时失败 的解决方法</a>
                        <span class="text-muted">唐骁虎</span>
<a class="tag" taget="_blank" href="/search/excel/1.htm">excel</a>
                        <div>使用Excel编写VBA脚本时出现如下错误:运行时错误1004’:方法‘Open’作用于对象‘Workbooks’时失败我的功能是打开一系列excel文件从中自动复制数据到汇总excel的各个指定的sheet中,来源的excel是从网站上下载的。出现这个问题后从网上查找各种办法,有说要进行信任设置的,有说要删除XLSSTART文件夹的,有说什么新版本office对vba格式要求更严格的,信任设置我</div>
                    </li>
                    <li><a href="/article/1939422181683425280.htm"
                           title="Java项目实现Excel导出(Hutool)" target="_blank">Java项目实现Excel导出(Hutool)</a>
                        <span class="text-muted">xwh-</span>
<a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/excel/1.htm">excel</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/cloud/1.htm">cloud</a>
                        <div>官网:Excel生成-ExcelWriter(hutool.cn)1.使用Hutool工具实现Excel导出(.xlsx格式)业务场景:使用SpringCloud+mysql+mybatis-plus需要将数据库中的数据导出到Excel文件中前端为Vue2第零步:导入依赖(用于生成Excel文件)com.alibabaeasyexcel3.0.5(用于处理MicrosoftOffice格式文件)o</div>
                    </li>
                    <li><a href="/article/1939397111472779264.htm"
                           title="AMHS工程项目中-MCS-STKC之间的office 测试场景的介绍" target="_blank">AMHS工程项目中-MCS-STKC之间的office 测试场景的介绍</a>
                        <span class="text-muted">爱吃青菜的大力水手</span>
<a class="tag" taget="_blank" href="/search/%E5%8D%8A%E5%AF%BC%E4%BD%93/1.htm">半导体</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96/1.htm">自动化</a><a class="tag" taget="_blank" href="/search/AMHS/1.htm">AMHS</a><a class="tag" taget="_blank" href="/search/MCS/1.htm">MCS</a>
                        <div>工业自动化/半导体/面板制造等行业中常见的系统间接口预调试测试,通常称为Mockup测试、Office测试或FAT-Simulation测试。它的核心目标是在设备实际搬入工厂现场并连接真实物理设备之前,在办公室环境中验证上位系统(MCS)与下位系统(STOCKER控制器)之间的通信接口、协议逻辑和业务流程是否正常工作。以下是针对此场景的详细解读和关键点:核心目标:验证通信协议互通性:确保MCS发送</div>
                    </li>
                    <li><a href="/article/1939391816969285632.htm"
                           title="政企终端安全综合治理方案(无技术人员)" target="_blank">政企终端安全综合治理方案(无技术人员)</a>
                        <span class="text-muted">兢谨网安</span>
<a class="tag" taget="_blank" href="/search/%E4%BC%81%E4%B8%9A%E5%AE%89%E5%85%A8/1.htm">企业安全</a><a class="tag" taget="_blank" href="/search/%E6%94%BF%E5%8A%A1/1.htm">政务</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E6%94%BB%E5%87%BB%E6%A8%A1%E5%9E%8B/1.htm">网络攻击模型</a><a class="tag" taget="_blank" href="/search/%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95/1.htm">渗透测试</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
                        <div>核心原则:制度管理为主,技术工具为辅,全员参与共治一、管理机制建设(关键措施,占比70%)行政指令强制规范发布《办公终端软件安装白名单制度》仅允许安装政务版杀毒软件、办公软件(如WPS政务版)、专用业务系统。白名单示例:360安全卫士政务版、奇安信、金山毒霸企业版(政务)、微软Office(正版授权)、企业微信政务版。明确禁止行为(纳入员工守则):禁止安装娱乐软件(如视频播放器、游戏)、破解软件、</div>
                    </li>
                    <li><a href="/article/1939019253114007552.htm"
                           title="投标文件制作中多级标题自动设置" target="_blank">投标文件制作中多级标题自动设置</a>
                        <span class="text-muted">℃-柠檬</span>
<a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a><a class="tag" taget="_blank" href="/search/%E5%85%B6%E4%BB%96/1.htm">其他</a>
                        <div>针对大型项目的投标文件制作,标书中可能会涉及到很多的内容,需要做标题分级和分类,格式调整需要耗费大量的时间和精力,近期由于投标工作需要,自己整理了一稿标书制作过程中的多级标题的自动设置及格式调整的方法,分享给需要的朋友。样式表我同步上传到我自己的博客资源中了,有需要的朋友可以直接下载使用。(PS:我自己用的是2013版的Office)一、定义新的多级列表新建一个空白Word文档,在“开始”中找到列</div>
                    </li>
                    <li><a href="/article/1938966043959554048.htm"
                           title="【安全漏洞】深入剖析CVE-2021-40444-Cabless利用链" target="_blank">【安全漏洞】深入剖析CVE-2021-40444-Cabless利用链</a>
                        <span class="text-muted">IT老涵</span>
<a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E6%BC%8F%E6%B4%9E/1.htm">漏洞</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8%E6%BC%8F%E6%B4%9E/1.htm">安全漏洞</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a>
                        <div>背景CVE-2021-40444为微软MHTML远程命令执行漏洞,攻击者可通过传播MicrosoftOffice文档,诱导目标点击文档从而在目标机器上执行任意代码。该漏洞最初的利用思路是使用下载cab并释放、加载inf文件的形式执行恶意代码。独立安全研究员EduardoB.在github公开了一种新的“无CAB”的漏洞利用方法及其POC。公众号之前发布的研判文章中已对在野利用中出现的新的Cable</div>
                    </li>
                    <li><a href="/article/1938915855312154624.htm"
                           title="如何在 ArcGIS 中使用 Microsoft Excel 文件_20250614" target="_blank">如何在 ArcGIS 中使用 Microsoft Excel 文件_20250614</a>
                        <span class="text-muted">Lauren_Lu</span>
<a class="tag" taget="_blank" href="/search/arcgis/1.htm">arcgis</a><a class="tag" taget="_blank" href="/search/microsoft/1.htm">microsoft</a><a class="tag" taget="_blank" href="/search/excel/1.htm">excel</a>
                        <div>如何在ArcGIS中使用MicrosoftExcel文件软件版本:win11;ArcGIS10.8;Office20241.确认ArcGIS10.8对.xlsx文件的支持ArcGIS10.8支持.xlsx文件(Excel2007及以上格式),但需要安装MicrosoftAccessDatabaseEngine驱动程序来读取这些文件。ArcGIS10.8是一个32位应用程序,因此需要32位的驱动程序</div>
                    </li>
                    <li><a href="/article/1938856087155437568.htm"
                           title="英国留学生顺利拿到offer!博士学历+微软MOS国际认证加buff!" target="_blank">英国留学生顺利拿到offer!博士学历+微软MOS国际认证加buff!</a>
                        <span class="text-muted">全球认证考试中心</span>
<a class="tag" taget="_blank" href="/search/microsoft/1.htm">microsoft</a>
                        <div>在全球化职场竞争日益激烈的当下,英国留学生若想提升自身竞争力,考取高含金量的国际证书是一条有效途径。MicrosoftOfficeSpecialist(MOS)国际认证作为微软官方推出的办公软件专业认证,在全球168个国家和地区得到认可,每年吸引近百万人次报考,已成为众多外企筛选人才的重要标准。正值暑假,不少同学计划利用这段时间备考MOS,本文将结合实际经验,为大家提供一套系统的备考方案。一、为何</div>
                    </li>
                    <li><a href="/article/1938726498030645248.htm"
                           title="Excel处理控件Aspose.Cells教程:Java 在 Excel 中插入和删除行和列" target="_blank">Excel处理控件Aspose.Cells教程:Java 在 Excel 中插入和删除行和列</a>
                        <span class="text-muted"></span>

                        <div>Aspose.Cells是Excel电子表格编程API,可加快电子表格的管理和处理任务,支持构建能够生成,修改,转换,呈现和打印电子表格的跨平台应用程序。同时不依赖于MicrosoftExcel或任何MicrosoftOfficeInterop组件,AsposeAPI支持旗下产品覆盖文档、图表、PDF、条码、OCR、CAD、HTML、电子邮件等各个文档管理领域,为全球.NET、Java、C++等1</div>
                    </li>
                    <li><a href="/article/1938623648495628288.htm"
                           title="蓝色教育培训通用PPT模板" target="_blank">蓝色教育培训通用PPT模板</a>
                        <span class="text-muted">puerppt</span>
<a class="tag" taget="_blank" href="/search/%E5%B9%B3%E9%9D%A2/1.htm">平面</a>
                        <div>模板介绍本套蓝色教育培训通用PPT模板,模板编号:P22236,大小10MB,共27页,比例为16:9,由封面、目录、转场页、内容、结尾5个部分构成。内含青色,蓝色,灰色多种配色,精美其他风格设计,动态播放效果,精美实用。一份设计精美的PPT模板,可以让你在汇报演讲时脱颖而出。PPT模板都是源文件,文字、图片都可以编辑,内容、页面根据自己的需要增加删除。模板下载后请安装并使用Office或WPS软</div>
                    </li>
                    <li><a href="/article/1938567031070715904.htm"
                           title="ONLYOFFICE文档:为企业和开发者带来强大的文档编辑功能" target="_blank">ONLYOFFICE文档:为企业和开发者带来强大的文档编辑功能</a>
                        <span class="text-muted">dvlinker</span>
<a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE/1.htm">开源项目</a><a class="tag" taget="_blank" href="/search/ONLYOFFICE/1.htm">ONLYOFFICE</a><a class="tag" taget="_blank" href="/search/%E6%96%87%E6%A1%A3%E7%BC%96%E8%BE%91/1.htm">文档编辑</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E4%BA%BA%E5%8D%8F%E4%BD%9C/1.htm">多人协作</a>
                        <div>本文给大家介绍一个开源项目:ONLYOFFICE文档,它能够为文档编辑、多人协作提供强大支持。无论你是个人使用,还是企业、商业开发,都能找到适合你的版本。关于ONLYOFFICE文档ONLYOFFICE文档是一套功能强大的文档编辑器,支持编辑处理文本文档、电子表格、演示文稿、可填写的表单、PDF,可多人在线协作,支持AI集成。多平台兼容ONLYOFFICE文档适用于Windows、Linux、An</div>
                    </li>
                    <li><a href="/article/1938521777122635776.htm"
                           title="MiniWord .NET Word模板引擎 - 跨平台文件生成解决方案" target="_blank">MiniWord .NET Word模板引擎 - 跨平台文件生成解决方案</a>
                        <span class="text-muted">来自日本的亮仔</span>

                        <div>本文还有配套的精品资源,点击获取简介:MiniWord.NETWord模板引擎是一款专为.NET开发者设计的高效文件生成工具,使程序员能够利用Word模板和数据快速创建文档。该引擎不依赖于OfficeCOM+组件,因此支持包括Linux和Mac在内的多种操作系统。MiniWord提供了一个直观的模板设计过程,允许用户通过Word界面定义静态内容和动态数据占位符,从而简化了批量生成报告和合同的工作。</div>
                    </li>
                    <li><a href="/article/1938518248710533120.htm"
                           title="python win32com.client" target="_blank">python win32com.client</a>
                        <span class="text-muted">dehong2015</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>搜集的一些关于win32com.client操作office的相关用法#创建#wordw=win32com.client.Dispatch("Word.Application")w=win32com.client.DispatchEx("Word.Application")#使用启动独立的进程#excelxlApp=win32com.client.Dispatch("Excel.Applicati</div>
                    </li>
                    <li><a href="/article/1938518250270814208.htm"
                           title="Linux 中软件使用及常见问题 Q&A" target="_blank">Linux 中软件使用及常见问题 Q&A</a>
                        <span class="text-muted">firendsunbird</span>
<a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/1.htm">操作系统</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a>
                        <div>软件安装与维护Mathematica的安装与卸载:安装时可以使用Windows下的注册机生成序列号;卸载时直接删除安装文件夹,同时删除/usr/local/bin/中的链接。卸载永中Office:#rmeio编译安装Thunderbird:./configure--enable-application=mail--enable-staticmakemakeinstall64位系统强制安装32位的q</div>
                    </li>
                    <li><a href="/article/1938516230461779968.htm"
                           title="python 安装win32com.client库" target="_blank">python 安装win32com.client库</a>
                        <span class="text-muted">FreeLikeTheWind.</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>win32com.client是Python中用于操作WindowsCOM对象的强大模块,特别适合与MicrosoftOffice应用程序(如Word、Excel、Outlook等)进行交互。1.安装win32com.client需要安装pywin32库:pipinstallpywin32如果安装失败或速度慢,可以使用国内镜像源:pipinstallpywin32-ihttps://pypi.tu</div>
                    </li>
                    <li><a href="/article/1938433795707432960.htm"
                           title="Vue集成PageOffice实现在线编辑word、excel(前端配置)" target="_blank">Vue集成PageOffice实现在线编辑word、excel(前端配置)</a>
                        <span class="text-muted">逆羽~</span>
<a class="tag" taget="_blank" href="/search/word/1.htm">word</a><a class="tag" taget="_blank" href="/search/excel/1.htm">excel</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/es6/1.htm">es6</a>
                        <div>一、什么是PageOfficePageOffice是一款在线的office编辑软件,帮助Web应用系统或Web网站实现用户在线编辑Word、Excel、PowerPoint文档。可以完美实现在线公文流转,领导批阅,盖章。可以给文件添加水印,在线安全预览防止用户下载和复制文件等。二、环境要求前端Vue项目:Node.js10及以上版本(当前集成方式不支持vue3,原因是vue3不兼容ie)三、前端配</div>
                    </li>
                    <li><a href="/article/1938430139062874112.htm"
                           title="如何用JAVA如何实现Word、Excel、PPT在线前端预览编辑的功能?" target="_blank">如何用JAVA如何实现Word、Excel、PPT在线前端预览编辑的功能?</a>
                        <span class="text-muted">猿大师办公助手</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E9%A1%B5%E5%86%85%E5%B5%8CWPS/1.htm">网页内嵌WPS</a><a class="tag" taget="_blank" href="/search/Office/1.htm">Office</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E9%A1%B5%E5%86%85%E5%B5%8C%E5%BE%AE%E8%BD%AFOffice/1.htm">网页内嵌微软Office</a><a class="tag" taget="_blank" href="/search/%E7%8C%BF%E5%A4%A7%E5%B8%88%E5%8A%9E%E5%85%AC%E5%8A%A9%E6%89%8B/1.htm">猿大师办公助手</a><a class="tag" taget="_blank" href="/search/word/1.htm">word</a><a class="tag" taget="_blank" href="/search/excel/1.htm">excel</a><a class="tag" taget="_blank" href="/search/powerpoint/1.htm">powerpoint</a><a class="tag" taget="_blank" href="/search/chrome/1.htm">chrome</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a>
                        <div>背景随着信息化的发展,在线办公也日益成为了企业办公和个人学习不可或缺的一部分,作为微软Office的三大组成部分:Word、Excel和PPT也广泛应用于各种在线办公场景,但是由于浏览器限制及微软Office的不开源等特性,导致Word、Excel和PPT在在线办公很难整合到自己公司的OA或者文档系统。下面介绍几种目前最常见的几种用JAVA如何实现Word、Excel、PPT在线预览编辑的方案:一</div>
                    </li>
                    <li><a href="/article/1938428249164017664.htm"
                           title="vue2 集成 Onlyoffice_vue onlyoffice" target="_blank">vue2 集成 Onlyoffice_vue onlyoffice</a>
                        <span class="text-muted">2401_85124621</span>
<a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a>
                        <div>五、安装dockera、windows安装:Windows10Docker安装教程-CSDN博客b、mac安装:【云原生丶Docker】MacOS系统安装Docker【保姆级教程】_mac安装docker-CSDN博客六、通过docker安装Onlyoffice1、使用JWT验证sudodockerrun-i-t-d-p8701:80onlyoffice/documentserver2、不使用JW</div>
                    </li>
                    <li><a href="/article/1938419799554060288.htm"
                           title="清新文具科学通用教学课件PPT模板" target="_blank">清新文具科学通用教学课件PPT模板</a>
                        <span class="text-muted">puerppt</span>
<a class="tag" taget="_blank" href="/search/%E5%B9%B3%E9%9D%A2/1.htm">平面</a>
                        <div>模板介绍精美PPT模板设计,清新文具科学通用教学课件PPT模板。一套教育培训幻灯片模板,内含黑色,橙色多种配色,精美风格设计,动态播放效果,精美实用。一份设计精美的PPT模板,可以让你在汇报演讲时脱颖而出。希望下面这份精美的PPT模板能给你带来帮助,温馨提示:本资源使用PPT或PPTX等格式,请安装并使用Office或WPS软件打开。模板信息模板编号:P69361用途:教育培训。模板格式:pptx</div>
                    </li>
                    <li><a href="/article/1938215545446920192.htm"
                           title="Java如何导出word(根据模板生成),通过word转成pdf,放压缩包" target="_blank">Java如何导出word(根据模板生成),通过word转成pdf,放压缩包</a>
                        <span class="text-muted">R-sz</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/word/1.htm">word</a><a class="tag" taget="_blank" href="/search/pdf/1.htm">pdf</a>
                        <div>com.deepoovepoi-tl1.10.0-betaorg.apache.poipoi4.1.2org.apache.poipoi-ooxml4.1.2org.apache.poipoi-scratchpad4.1.2com.documents4jdocuments4j-local1.0.3com.documents4jdocuments4j-transformer-msoffice-wor</div>
                    </li>
                    <li><a href="/article/1937981329534676992.htm"
                           title="python 在线预览文件_OFFICE 文档转换为html在线预览" target="_blank">python 在线预览文件_OFFICE 文档转换为html在线预览</a>
                        <span class="text-muted">苏橙橙</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%9C%A8%E7%BA%BF%E9%A2%84%E8%A7%88%E6%96%87%E4%BB%B6/1.htm">在线预览文件</a>
                        <div>OFFICE文档转换为html在线预览OFFICE文档在线预览方案很多:服务器先转换为PDF,再转换为SWF,最后通过网页加载Flash预览,比如flexpaperOffice文档直接转换为SWF,通过网页加载Flash预览微软的Office365在浏览器中直接打开转换为html今天,我们要用的方案是转换为html来预览。技术方案:office文档转换为pdf:使用libreofficepdf转h</div>
                    </li>
                                <li><a href="/article/8.htm"
                                       title="LeetCode[Math] - #66 Plus One" target="_blank">LeetCode[Math] - #66 Plus One</a>
                                    <span class="text-muted">Cwind</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/LeetCode/1.htm">LeetCode</a><a class="tag" taget="_blank" href="/search/%E9%A2%98%E8%A7%A3/1.htm">题解</a><a class="tag" taget="_blank" href="/search/Algorithm/1.htm">Algorithm</a><a class="tag" taget="_blank" href="/search/Math/1.htm">Math</a>
                                    <div>原题链接:#66 Plus One 
  
要求: 
给定一个用数字数组表示的非负整数,如num1 = {1, 2, 3, 9}, num2 = {9, 9}等,给这个数加上1。 
注意: 
1. 数字的较高位存在数组的头上,即num1表示数字1239 
2. 每一位(数组中的每个元素)的取值范围为0~9 
  
难度:简单 
  
分析: 
题目比较简单,只须从数组</div>
                                </li>
                                <li><a href="/article/135.htm"
                                       title="JQuery中$.ajax()方法参数详解" target="_blank">JQuery中$.ajax()方法参数详解</a>
                                    <span class="text-muted">AILIKES</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/jsonp/1.htm">jsonp</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a>
                                    <div>url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。 
type: 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和    delete也可以使用,但仅部分浏览器支持。 
timeout: 要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.ajaxSetup()方法的全局</div>
                                </li>
                                <li><a href="/article/262.htm"
                                       title="JConsole & JVisualVM远程监视Webphere服务器JVM" target="_blank">JConsole & JVisualVM远程监视Webphere服务器JVM</a>
                                    <span class="text-muted">Kai_Ge</span>
<a class="tag" taget="_blank" href="/search/JVisualVM/1.htm">JVisualVM</a><a class="tag" taget="_blank" href="/search/JConsole/1.htm">JConsole</a><a class="tag" taget="_blank" href="/search/Webphere/1.htm">Webphere</a>
                                    <div>    JConsole是JDK里自带的一个工具,可以监测Java程序运行时所有对象的申请、释放等动作,将内存管理的所有信息进行统计、分析、可视化。我们可以根据这些信息判断程序是否有内存泄漏问题。 
  使用JConsole工具来分析WAS的JVM问题,需要进行相关的配置。 
  首先我们看WAS服务器端的配置. 
  1、登录was控制台https://10.4.119.18</div>
                                </li>
                                <li><a href="/article/389.htm"
                                       title="自定义annotation" target="_blank">自定义annotation</a>
                                    <span class="text-muted">120153216</span>
<a class="tag" taget="_blank" href="/search/annotation/1.htm">annotation</a>
                                    <div>Java annotation 自定义注释@interface的用法  一、什么是注释  
 
    说起注释,得先提一提什么是元数据(metadata)。所谓元数据就是数据的数据。也就是说,元数据是描述数据的。就象数据表中的字段一样,每个字段描述了这个字段下的数据的含义。而J2SE5.0中提供的注释就是java源代码的元数据,也就是说注释是描述java源</div>
                                </li>
                                <li><a href="/article/516.htm"
                                       title="CentOS 5/6.X 使用 EPEL YUM源" target="_blank">CentOS 5/6.X 使用 EPEL YUM源</a>
                                    <span class="text-muted">2002wmj</span>
<a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a>
                                    <div>CentOS 6.X 安装使用EPEL YUM源1. 查看操作系统版本[root@node1 ~]# uname -a Linux node1.test.com 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux [root@node1 ~]#</div>
                                </li>
                                <li><a href="/article/643.htm"
                                       title="在SQLSERVER中查找缺失和无用的索引SQL" target="_blank">在SQLSERVER中查找缺失和无用的索引SQL</a>
                                    <span class="text-muted">357029540</span>
<a class="tag" taget="_blank" href="/search/SQL+Server/1.htm">SQL Server</a>
                                    <div>--缺失的索引 
SELECT  avg_total_user_cost * avg_user_impact * ( user_scans + user_seeks ) AS PossibleImprovement ,  
        last_user_seek ,  
  </div>
                                </li>
                                <li><a href="/article/770.htm"
                                       title="Spring3 MVC 笔记(二) —json+rest优化" target="_blank">Spring3 MVC 笔记(二) —json+rest优化</a>
                                    <span class="text-muted">7454103</span>
<a class="tag" taget="_blank" href="/search/Spring3+MVC/1.htm">Spring3 MVC</a>
                                    <div>接上次的 spring mvc 注解的一些详细信息! 
                         其实也是一些个人的学习笔记  呵呵! 
 
</div>
                                </li>
                                <li><a href="/article/897.htm"
                                       title="替换“\”的时候报错Unexpected internal error near index 1 \ ^" target="_blank">替换“\”的时候报错Unexpected internal error near index 1 \ ^</a>
                                    <span class="text-muted">adminjun</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E2%80%9C%5C%E6%9B%BF%E6%8D%A2%E2%80%9D/1.htm">“\替换”</a>
                                    <div>发现还是有些东西没有刻子脑子里,,过段时间就没什么概念了,所以贴出来...以免再忘... 
  
在拆分字符串时遇到通过 \ 来拆分,可是用所以想通过转义 \\ 来拆分的时候会报异常 
   
 
 public class Main {   
    
     /*</div>
                                </li>
                                <li><a href="/article/1024.htm"
                                       title="POJ 1035 Spell checker(哈希表)" target="_blank">POJ 1035 Spell checker(哈希表)</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/%E6%9A%B4%E5%8A%9B%E6%B1%82%E8%A7%A3--%E5%93%88%E5%B8%8C%E8%A1%A8/1.htm">暴力求解--哈希表</a>
                                    <div>/*
题意:输入字典,然后输入单词,判断字典中是否出现过该单词,或者是否进行删除、添加、替换操作,如果是,则输出对应的字典中的单词
要求按照输入时候的排名输出

题解:建立两个哈希表。一个存储字典和输入字典中单词的排名,一个进行最后输出的判重
*/

#include <iostream>
//#define 
using namespace std;
const int HASH =</div>
                                </li>
                                <li><a href="/article/1151.htm"
                                       title="通过原型实现javascript Array的去重、最大值和最小值" target="_blank">通过原型实现javascript Array的去重、最大值和最小值</a>
                                    <span class="text-muted">ayaoxinchao</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/array/1.htm">array</a><a class="tag" taget="_blank" href="/search/prototype/1.htm">prototype</a>
                                    <div>用原型函数(prototype)可以定义一些很方便的自定义函数,实现各种自定义功能。本次主要是实现了Array的去重、获取最大值和最小值。 
实现代码如下: 
  
<script type="text/javascript">
	Array.prototype.unique = function() {
		var a = {};
		var le</div>
                                </li>
                                <li><a href="/article/1278.htm"
                                       title="UIWebView实现https双向认证请求" target="_blank">UIWebView实现https双向认证请求</a>
                                    <span class="text-muted">bewithme</span>
<a class="tag" taget="_blank" href="/search/UIWebView/1.htm">UIWebView</a><a class="tag" taget="_blank" href="/search/https/1.htm">https</a><a class="tag" taget="_blank" href="/search/Objective-C/1.htm">Objective-C</a>
                                    <div>  
        什么是HTTPS双向认证我已在先前的博文 ASIHTTPRequest实现https双向认证请求 
中有讲述,不理解的读者可以先复习一下。本文是用UIWebView来实现对需要客户端证书验证的服务请求,网上有些文章中有涉及到此内容,但都只言片语,没有讲完全,更没有完整的代码,让人困扰不已。但是此知</div>
                                </li>
                                <li><a href="/article/1405.htm"
                                       title="NoSQL数据库之Redis数据库管理(Redis高级应用之事务处理、持久化操作、pub_sub、虚拟内存)" target="_blank">NoSQL数据库之Redis数据库管理(Redis高级应用之事务处理、持久化操作、pub_sub、虚拟内存)</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/NoSQL/1.htm">NoSQL</a>
                                    <div>3.事务处理 
        Redis对事务的支持目前不比较简单。Redis只能保证一个client发起的事务中的命令可以连续的执行,而中间不会插入其他client的命令。当一个client在一个连接中发出multi命令时,这个连接会进入一个事务上下文,该连接后续的命令不会立即执行,而是先放到一个队列中,当执行exec命令时,redis会顺序的执行队列中</div>
                                </li>
                                <li><a href="/article/1532.htm"
                                       title="各数据库分页sql备忘" target="_blank">各数据库分页sql备忘</a>
                                    <span class="text-muted">bingyingao</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E9%A1%B5/1.htm">分页</a>
                                    <div>ORACLE 
 
下面这个效率很低 
SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM IPAY_RCD_FS_RETURN order by id desc) A ) WHERE RN <20; 
 
下面这个效率很高 
SELECT A.*, ROWNUM RN FROM (SELECT * FROM IPAY_RCD_</div>
                                </li>
                                <li><a href="/article/1659.htm"
                                       title="【Scala七】Scala核心一:函数" target="_blank">【Scala七】Scala核心一:函数</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/scala/1.htm">scala</a>
                                    <div>1. 如果函数体只有一行代码,则可以不用写{},比如 
def print(x: Int) = println(x) 
一行上的多条语句用分号隔开,则只有第一句属于方法体,例如 
  
def printWithValue(x: Int) : String= println(x); "ABC" 
  
上面的代码报错,因为,printWithValue的方法</div>
                                </li>
                                <li><a href="/article/1786.htm"
                                       title="了解GHC的factorial编译过程" target="_blank">了解GHC的factorial编译过程</a>
                                    <span class="text-muted">bookjovi</span>
<a class="tag" taget="_blank" href="/search/haskell/1.htm">haskell</a>
                                    <div>GHC相对其他主流语言的编译器或解释器还是比较复杂的,一部分原因是haskell本身的设计就不易于实现compiler,如lazy特性,static typed,类型推导等。 
关于GHC的内部实现有篇文章说的挺好,这里,文中在RTS一节中详细说了haskell的concurrent实现,里面提到了green thread,如果熟悉Go语言的话就会发现,ghc的concurrent实现和Go有点类</div>
                                </li>
                                <li><a href="/article/1913.htm"
                                       title="Java-Collections Framework学习与总结-LinkedHashMap" target="_blank">Java-Collections Framework学习与总结-LinkedHashMap</a>
                                    <span class="text-muted">BrokenDreams</span>
<a class="tag" taget="_blank" href="/search/LinkedHashMap/1.htm">LinkedHashMap</a>
                                    <div>        前面总结了java.util.HashMap,了解了其内部由散列表实现,每个桶内是一个单向链表。那有没有双向链表的实现呢?双向链表的实现会具备什么特性呢?来看一下HashMap的一个子类——java.util.LinkedHashMap。 
      </div>
                                </li>
                                <li><a href="/article/2040.htm"
                                       title="读《研磨设计模式》-代码笔记-抽象工厂模式-Abstract Factory" target="_blank">读《研磨设计模式》-代码笔记-抽象工厂模式-Abstract Factory</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/abstract/1.htm">abstract</a>
                                    <div>声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ 
 
 


package design.pattern;

/*
 * Abstract Factory Pattern
 * 抽象工厂模式的目的是:
 * 通过在抽象工厂里面定义一组产品接口,方便地切换“产品簇”
 * 这些接口是相关或者相依赖的</div>
                                </li>
                                <li><a href="/article/2167.htm"
                                       title="压暗面部高光" target="_blank">压暗面部高光</a>
                                    <span class="text-muted">cherishLC</span>
<a class="tag" taget="_blank" href="/search/PS/1.htm">PS</a>
                                    <div>方法一、压暗高光&重新着色 
当皮肤很油又使用闪光灯时,很容易在面部形成高光区域。 
下面讲一下我今天处理高光区域的心得: 
皮肤可以分为纹理和色彩两个属性。其中纹理主要由亮度通道(Lab模式的L通道)决定,色彩则由a、b通道确定。 
处理思路为在保持高光区域纹理的情况下,对高光区域着色。具体步骤为:降低高光区域的整体的亮度,再进行着色。 
如果想简化步骤,可以只进行着色(参看下面的步骤1</div>
                                </li>
                                <li><a href="/article/2294.htm"
                                       title="Java VisualVM监控远程JVM" target="_blank">Java VisualVM监控远程JVM</a>
                                    <span class="text-muted">crabdave</span>
<a class="tag" taget="_blank" href="/search/visualvm/1.htm">visualvm</a>
                                    <div>Java VisualVM监控远程JVM  
  
JDK1.6开始自带的VisualVM就是不错的监控工具. 
这个工具就在JAVA_HOME\bin\目录下的jvisualvm.exe, 双击这个文件就能看到界面 
  
通过JMX连接远程机器, 需要经过下面的配置: 
1. 修改远程机器JDK配置文件 (我这里远程机器是linux). 
   </div>
                                </li>
                                <li><a href="/article/2421.htm"
                                       title="Saiku去掉登录模块" target="_blank">Saiku去掉登录模块</a>
                                    <span class="text-muted">daizj</span>
<a class="tag" taget="_blank" href="/search/saiku/1.htm">saiku</a><a class="tag" taget="_blank" href="/search/%E7%99%BB%E5%BD%95/1.htm">登录</a><a class="tag" taget="_blank" href="/search/olap/1.htm">olap</a><a class="tag" taget="_blank" href="/search/BI/1.htm">BI</a>
                                    <div> 
1、修改applicationContext-saiku-webapp.xml 
 
<security:intercept-url pattern="/rest/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />  
<security:intercept-url pattern=&qu</div>
                                </li>
                                <li><a href="/article/2548.htm"
                                       title="浅析 Flex中的Focus" target="_blank">浅析 Flex中的Focus</a>
                                    <span class="text-muted">dsjt</span>
<a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/Flex/1.htm">Flex</a><a class="tag" taget="_blank" href="/search/Flash/1.htm">Flash</a>
                                    <div>关键字:focus、 setFocus、 IFocusManager、KeyboardEvent 
 焦点、设置焦点、获得焦点、键盘事件 
 
 
 一、无焦点的困扰——组件监听不到键盘事件 
原因:只有获得焦点的组件(确切说是InteractiveObject)才能监听到键盘事件的目标阶段;键盘事件(flash.events.KeyboardEvent)参与冒泡阶段,所以焦点组件的父项(以及它爸</div>
                                </li>
                                <li><a href="/article/2675.htm"
                                       title="Yii全局函数使用" target="_blank">Yii全局函数使用</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a>
                                    <div>由于YII致力于完美的整合第三方库,它并没有定义任何全局函数。yii中的每一个应用都需要全类别和对象范围。例如,Yii::app()->user;Yii::app()->params['name'];等等。我们可以自行设定全局函数,使得代码看起来更加简洁易用。(原文地址) 
我们可以保存在globals.php在protected目录下。然后,在入口脚本index.php的,我们包括在</div>
                                </li>
                                <li><a href="/article/2802.htm"
                                       title="设计模式之单例模式二(解决无序写入的问题)" target="_blank">设计模式之单例模式二(解决无序写入的问题)</a>
                                    <span class="text-muted">come_for_dream</span>
<a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F/1.htm">单例模式</a><a class="tag" taget="_blank" href="/search/volatile/1.htm">volatile</a><a class="tag" taget="_blank" href="/search/%E4%B9%B1%E5%BA%8F%E6%89%A7%E8%A1%8C/1.htm">乱序执行</a><a class="tag" taget="_blank" href="/search/%E5%8F%8C%E9%87%8D%E6%A3%80%E9%AA%8C%E9%94%81/1.htm">双重检验锁</a>
                                    <div>                在上篇文章中我们使用了双重检验锁的方式避免懒汉式单例模式下由于多线程造成的实例被多次创建的问题,但是因为由于JVM为了使得处理器内部的运算单元能充分利用,处理器可能会对输入代码进行乱序执行(Out Of Order Execute)优化,处理器会在计算之后将乱序执行的结果进行重组,保证该</div>
                                </li>
                                <li><a href="/article/2929.htm"
                                       title="程序员从初级到高级的蜕变" target="_blank">程序员从初级到高级的蜕变</a>
                                    <span class="text-muted">gcq511120594</span>
<a class="tag" taget="_blank" href="/search/%E6%A1%86%E6%9E%B6/1.htm">框架</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a>
                                    <div>软件开发是一个奇怪的行业,市场远远供不应求。这是一个已经存在多年的问题,而且随着时间的流逝,愈演愈烈。 
我们严重缺乏能够满足需求的人才。这个行业相当年轻。大多数软件项目是失败的。几乎所有的项目都会超出预算。我们解决问题的最佳指导方针可以归结为——“用一些通用方法去解决问题,当然这些方法常常不管用,于是,唯一能做的就是不断地尝试,逐个看看是否奏效”。 
现在我们把淫浸代码时间超过3年的开发人员称为</div>
                                </li>
                                <li><a href="/article/3056.htm"
                                       title="Reverse Linked List" target="_blank">Reverse Linked List</a>
                                    <span class="text-muted">hcx2013</span>
<a class="tag" taget="_blank" href="/search/list/1.htm">list</a>
                                    <div>Reverse a singly linked list. 
  
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
p</div>
                                </li>
                                <li><a href="/article/3183.htm"
                                       title="Spring4.1新特性——数据库集成测试" target="_blank">Spring4.1新特性——数据库集成测试</a>
                                    <span class="text-muted">jinnianshilongnian</span>
<a class="tag" taget="_blank" href="/search/spring+4.1/1.htm">spring 4.1</a>
                                    <div>目录 
Spring4.1新特性——综述 
Spring4.1新特性——Spring核心部分及其他 
Spring4.1新特性——Spring缓存框架增强 
Spring4.1新特性——异步调用和事件机制的异常处理 
Spring4.1新特性——数据库集成测试脚本初始化 
Spring4.1新特性——Spring MVC增强 
Spring4.1新特性——页面自动化测试框架Spring MVC T</div>
                                </li>
                                <li><a href="/article/3310.htm"
                                       title="C# Ajax上传图片同时生成微缩图(附Demo)" target="_blank">C# Ajax上传图片同时生成微缩图(附Demo)</a>
                                    <span class="text-muted">liyonghui160com</span>

                                    <div>  
  
1.Ajax无刷新上传图片,详情请阅我的这篇文章。(jquery + c# ashx) 
        2.C#位图处理  System.Drawing。 
        3.最新demo支持IE7,IE8,Fir</div>
                                </li>
                                <li><a href="/article/3437.htm"
                                       title="Java list三种遍历方法性能比较" target="_blank">Java list三种遍历方法性能比较</a>
                                    <span class="text-muted">pda158</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>从c/c++语言转向java开发,学习java语言list遍历的三种方法,顺便测试各种遍历方法的性能,测试方法为在ArrayList中插入1千万条记录,然后遍历ArrayList,发现了一个奇怪的现象,测试代码例如以下: 
package com.hisense.tiger.list;
import java.util.ArrayList;
import java.util.Iterator;</div>
                                </li>
                                <li><a href="/article/3564.htm"
                                       title="300个涵盖IT各方面的免费资源(上)——商业与市场篇" target="_blank">300个涵盖IT各方面的免费资源(上)——商业与市场篇</a>
                                    <span class="text-muted">shoothao</span>
<a class="tag" taget="_blank" href="/search/seo/1.htm">seo</a><a class="tag" taget="_blank" href="/search/%E5%95%86%E4%B8%9A%E4%B8%8E%E5%B8%82%E5%9C%BA/1.htm">商业与市场</a><a class="tag" taget="_blank" href="/search/IT%E8%B5%84%E6%BA%90/1.htm">IT资源</a><a class="tag" taget="_blank" href="/search/%E5%85%8D%E8%B4%B9%E8%B5%84%E6%BA%90/1.htm">免费资源</a>
                                    <div> 
 A.网站模板+logo+服务器主机+发票生成 
 
 
  HTML5 UP:响应式的HTML5和CSS3网站模板。 
  Bootswatch:免费的Bootstrap主题。 
  Templated:收集了845个免费的CSS和HTML5网站模板。 
  Wordpress.org|Wordpress.com:可免费创建你的新网站。 
  Strikingly:关注领域中免费无限的移动优</div>
                                </li>
                                <li><a href="/article/3691.htm"
                                       title="localStorage、sessionStorage" target="_blank">localStorage、sessionStorage</a>
                                    <span class="text-muted">uule</span>
<a class="tag" taget="_blank" href="/search/localStorage/1.htm">localStorage</a>
                                    <div>W3School 例子 
  
HTML5 提供了两种在客户端存储数据的新方法: 
localStorage - 没有时间限制的数据存储 
sessionStorage - 针对一个 session 的数据存储 
  
之前,这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不</div>
                                </li>
                </ul>
            </div>
        </div>
    </div>

<div>
    <div class="container">
        <div class="indexes">
            <strong>按字母分类:</strong>
            <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a
                href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a
                href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a
                href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a
                href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a
                href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a
                href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a
                href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a
                href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a>
        </div>
    </div>
</div>
<footer id="footer" class="mb30 mt30">
    <div class="container">
        <div class="footBglm">
            <a target="_blank" href="/">首页</a> -
            <a target="_blank" href="/custom/about.htm">关于我们</a> -
            <a target="_blank" href="/search/Java/1.htm">站内搜索</a> -
            <a target="_blank" href="/sitemap.txt">Sitemap</a> -
            <a target="_blank" href="/custom/delete.htm">侵权投诉</a>
        </div>
        <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved.
<!--            <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>-->
        </div>
    </div>
</footer>
<!-- 代码高亮 -->
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script>
<link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/>
<script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script>





</body>

</html>