Spring Framework 5.2.1 发表了,更新内容如下:

Sublime Plugin : Convert​To​UTF8

标签(空格分隔): SublimePlugin


应用程序对象的操作
本章将介绍从Application对象初始的Excel对象模型中的一些最主要对象。
Excel对象模型中的主要对象有不菲办法和性质,完全描述这么些目的超越了本书的限量。相反,本章入眼介绍最常用的情势和品质。

新特性

  • 支撑 WebFlux
    编解码器中对输入流管理的节制 #23884
  • 角逐原则会潜移暗化 AbstractJaxb2HttpMessageConverter 中的质量- JAXBContext
    creation #23879
  • 添加 RSocketRequester resolveAndAwaitOrNull
    扩展 #23874
  • 在讲授中补助单向 @AliasFor
    属性映射 #23834
  • 允许在 BeanDefinitionBuilder
    上设置主标识 #23794
  • 引入 requestResultMatchers 中的
    sessionAttributeDoesNotExist #23756
  • EventPublishingTestExecutionListener 不带有在 JUnit 4 和 TestNG
    基类中 #23748
  • 优化 DataSourceUtils.resetConnectionAfterTransaction(…) 中的 
    Connection.setReadOnly(false) #23747
  • ResponseStatusException
    的拍卖也囊括响应头的设置 #23741
  • 修复 OkHttp3ClientHttpRequestFactory
    关闭流程 #23628

说明

因而本插件,您能够编写并保存近年来编码不被 Sublime Text
扶助的文书,极其是中国和东瀛韩客户使用的 GB2312,GBK,BIG5,EUC-KRAV4,EUC-JP
等。ConvertToUTF8 同期援助 Sublime Text 2 和 3。

Application对象在Excel对象模型中颇具最大数据的点子,属性和别的对象的事件。
Application对象也是Excel对象模型等级次序构造中的根对象。您能够透过从Application对象开首拜见对象模型中的全部其余对象,并访谈其性质及其重返的靶子的习性。
Application对象还富有大多卓有功效的利用程序级设置。

Bug 修复

  • 在 registrar
    中再度排序日期格式转变器 #23893
  • 应用合格的注入点重新访谈 @Configuration(proxyBeanMethods =
    false) #23887
  • 修复 AbstractNamedValueMethodArgumentResolver 中的
    NPE #23882
  • WebClient onStatus
    顺序已校勘 #23880
  • 删去 XpathRequestMatchers
    中未利用的花色参数证明 #23860
  • ……

越多内容见履新表明。

(文/开源中黄炎子孙民共和国卡塔尔    

注意

** Windows 7(Sublime Text
3):当设置Windows自定义文本大小(DPI)超越百分百时,文件名或者不可能准确呈现,请尝试在Sublime
Text 3的客商设置中加多"dpi_scale": 1

** Linux(Sublime Text 2 & 3)及OSX(Sublime Text
3):你需求安装多个万分插件以便ConvertToUTF8能健康办事:Codecs26(针对
Sublime Text 2)或
Codecs33(针对
Sublime Text 3)。

调节Excel的显示器更新行为
当你的代码对专门的学业簿施行生龙活虎组改过时,您也许须要将ScreenUpdating属性设置为false,以免止Excel在代码运行时更新显示器。将其设置回TRue将刷新荧屏,并允许Excel继续立异荧屏。

安装

推荐介绍应用 Package
Control
查找 ConvertToUTF8 进行机动下载安装与更新。

如需手工业安装,请将本项目打包下载并解压,将解压后的文件夹有名学园订为
ConvertToUTF8 ,然后将此文件夹移动到 Sublime Text 的 Packages
文件夹下(可经过 Sublime Text 菜单中的 Preferences > Browse Packages
找到 澳门新葡萄京官网注册 ,Packages 文件夹)。

您的文书夹应该看起来是如此的:

澳门新葡萄京官网注册 1

Folder Hierarchy

除了在代码运营时不强迫客户观察Excel改过单元格的长处之外,ScreenUpdating属性表明对加快代码极度实用。每便操作后再行画屏恐怕特别昂贵。确定保证在您的代码实现时将此属性设置为true,顾客将留下不绘制的Excel。如下所示,try-finally块是确认保证就算抛出分外也会重新苏醒设置属性的造福方法。

设置

请查看 ConvertToUTF8.sublime-settings
文件获取详细消息。为防守更新插件时被遮住,请将民用设置保存到 User
目录中名称叫 ConvertToUTF8.sublime-settings 文件中。您能够在
.sublime-project 文件(可经过 Project > Edit Project
张开)中钦点项目从属设置(除 encoding_list 和 max_cache_size 外)。

  • encoding_list:检测退步时显得的编码列表
  • max_cache_size:最大编码缓存数量,0 代表不缓存(默以为 100)
  • max_detect_lines:最大检验行数,0 代表不节制(默以为 600)
  • preview_action:预览文件时是或不是将其剧情转变为 UTF-8(默以为 false)
  • default_encoding_on_create:钦赐新建文件的默许编码(如
    GBK),空值表示使用 Sublime Text 的 default_encoding 设置(默认为
    “”)
  • convert_on_load:文件装载时是还是不是将其内容转变来 UTF-8(默感觉 true)
  • convert_on_save:文件保存时是还是不是将其内容调换到原有(或钦点)编码(默认为true)
  • convert_on_find:将 Find Results 窗口里的剧情调换到 UTF-8(默以为false)
  • lazy_reload:将文件保留到不经常位置,并在切换窗口或标签时在后台自动重载(默以为false)
  • confidence:最低可相信率,检查评按时超越这些值将触发自动调换(默以为0.95)

二个越来越好的预订,而不唯有是将ScreenUpdating属性设置为true,正是在退换ScreenUpdating属性在此之前封存ScreenUpdating属性的值,并在达成后将其安装回该值。在开采Office时,要切记的意气风发件重要的职业是,您的代码不会形成在特定Office应用程序中运作的独一代码。加载项可能正在周转,以致任何文档背后的别样代码等等。您须求寻思代码如何影响此外运转在Excel内的代码。

采取表明

许多场所下,本插件将电动对管理编码相关的事项。

您也足以通过 File > Set File Encoding to
菜单对文本编码实行手工业调换。例如,您能够展开一个 UTF-8
编码的公文,内定保存为 GBK,反之亦然。

注意:

  • 如果 convert_on_save 被安装为 false,文件不会被保存成钦赐编码
  • 在文书编码检验过程做到前请勿编辑文件
  • 若检验结果不许确,请尝试增大 max_detect_lines 的值或手工行业内部定编码
  • 由于 API 限制,在 lazy_reload 设置为 true 时,保存文件后随时退出
    Sublime Text 将促成文件被保存为 UTF-8,正确的剧情就要下一次 Sublime
    Text 张开时重载

用作示范,另壹个加载项只怕运转本身的长操作,该加载项大概将ScreenUpdating属性设置为false以加快该操作。该加载项实行八个触发代码管理的事件的操作。假诺您的代码将ScreenUpdating属性设置为false,推行有些操作,然后将其设置为TRue落成后,将来已经战败了加载项增速自身的长日子操作的尝尝,因为你以往早就重新启用荧屏更新。要是您将积累ScreenUpdating的值设置为false,然后将ScreenUpdating设置为原始值,则与Excel中运作的其它轮代理公司码越来越好地共存。

科学普及难点

  • 问:安装后不可能职业,要怎样修复?

    答:请尝试以下步骤:

    1. 重启 Sublime Text
    2. 请确认插件目录名字为 ConvertToUTF8(借使是因此 Package Control
      安装的可略过此步骤)
    3. 参见上述“注意”条目
    4. 禁止使用其它编码相关的插件
    5. 联系我
  • 问:这么些插件援助什么编码?

    答:所有 Python
    支持的编码
    都能够,其余编码如 EUC-TW 将不被扶持。

  • 问:为什么有的时候重新激活窗口,里面包车型客车剧情会变乱码?

    答:此难题是由重新载入引起的,且已修复,请更新 ConvertToUTF8
    插件到新型版本。

  • 问:为何重新激活窗口时,ST2 问我文件“已经被校正。是或不是要重新载入?”

    答:原因与上一条相像。假诺你有未保存的更改,请选取“撤销”。

  • 问:在保存文件时,Sublime Text 为何提醒将文件保留为 UTF-8?

    答:未有涉及,本插件会活动将文件内容保留为原始编码。

  • 问:小编的文本被保留为UTF-8,况兼成为了乱码,要哪些恢复生机?

    答:请张开这一个文件,并承认它的编码是UTF-8,然后接纳菜单类别File > Save with Encoding > 韦斯特ern (Windows
    1252State of Qatar,关闭再另行打开该公文就能够。

列表5-1显得了利用VSTO使用ScreenUpdating属性的演示。

联系我

请发送您的主题素材或建议给自家:sunlxy (at卡塔尔(قطر‎
yahoo.com 或
http://weibo.com/seanliang

   
注:因为在代码运行后将ScreenUpdating设置为原始值很要紧,您应该利用C#对非常管理的支撑,以确认保证固然代码中现身相当,ScreenUpdating也将重作冯妇到其原始值。

         
C#帮助try,catch和finally块来管理极其。您应该将代码设置为ScreenUpdating重回到你的finally块中的原始值,因为该代码就要非凡产生时或然未有特别发生时运行。

清单5-1  设置ScreenUpdating属性的VSTO自定义

private void Sheet1_Startup(object sender, System.EventArgs e)
{
  bool oldScreenUpdatingSetting = this.Application.ScreenUpdating;

  try
  {
    this.Application.ScreenUpdating = false;
    Random r = new Random();

    for (int i = 1; i < 1000; i++)
    {
      string address = String.Format("A{0}", i);
      Excel.Range range = Range[address, missing];
      range.Value2 = r.Next();
    }
  }
  finally
  {
    this.Application.ScreenUpdating = oldScreenUpdatingSetting;
  }
}

调控Excel显示的对话框和警告
有的时候,您编写的代码将引致Excel显示对话框,提示顾客作出决定或升迁客户就要爆发的政工。假若在运作代码的风度翩翩部分时发掘这种情状时有产生,您大概希望防止显示那些对话框。

你能够将DisplayAlerts属性设置为false,以制止Excel在代码运营时展现对话框和消息。将此属性设置为false会以致Excel对别的或然来得的对话框或信息采用暗中认可响应。确定保证拿到此属性的原始值,并在代码运维后将质量设置为原始值。使用try,catch和finally块来确认保证您始终将质量重新恢复生机设置为其原始值,如项目清单5-1所示。

修改鼠标指针
在大型操作期间,您或许希望将Excel的鼠标指针的外观改进为停车计时器,让客户精通她们正在等待有个别事情完了。
Cursor属性是XlMousePointer类型的属性,能够修正Excel的鼠标指针的外观。它能够安装为以下值:xlDefault,xlIBeam,xlNorthwestArrow和xlWait。

管教在转移早先得到光标的原始值,并运用try,catch和finally块将其设置回原始值。项目清单5-2展现了接纳Cursor属性。

项目清单5-2 设置游标属性的VSTO自定义

private void Sheet1_Startup(object sender, System.EventArgs e)
{
  XlMousePointer originalCursor = this.Application.Cursor;

  try
  {
    this.Application.Cursor = XlMousePointer.xlWait;
    Random r = new Random();

    for (int i = 1; i < 2000; i++)
    {
      string address = String.Format("A{0}", i);
      Excel.Range range = this.Range[address, missing];
      range.Value2 = r.Next();
    }
  }
  finally
  {
    this.Application.Cursor = originalCursor;
  }
}

在Excel状态栏中体现消息
StatusBar是生龙活虎种属性,允许你设置Excel窗口左下角Excel状态栏中展现的新闻。
您能够将StatusBar属性设置为代表要在情景栏中突显的新闻的字符串。
您也足以将StatusBar设置为false以呈现Excel的私下认可状态栏新闻。
假设Excel突显默许状态栏信息,则StatusBar属性将回到false值。

与本节中的别的应用程序属性相像,您希望在转移在此之前封存StatusBar属性的原始值,并保险使用TRy,catch和finally块将其安装回原始值。
记住将StatusBar属性的值保存到对象变量中,因为它能够回到多个字符串或二个bool值。
清单5-3体现了二个例证。

清单5-3 使用StatusBar属性展现速度的VSTO自定义

private void Sheet1_Startup(object sender, System.EventArgs e)
{
  object oldValue = this.Application.StatusBar;

  try
  {
    Random r = new Random();

    for (int i = 1; i < 2000; i++)
    {
      string address = String.Format("A{0}", i);
      Excel.Range range = this.Range[address, missing];
      range.Value2 = r.Next();

      string status = String.Format("Updating {0) of 2000...", i);
      this.Application.StatusBar = status;
    }
  }
  finally
  {
    this.Application.StatusBar = oldValue;
  }
}

您不该使用的习性
Excel提供了二个名称叫Enable伊芙nts的属性,能够设置为false,以制止Excel引发其任何事件。固然您也许会测度动用那一个天性,不要这样做。再想生机勃勃想,您的代码差非常少不会在Excel中自动运作。别的开垦人士将会在Excel中运作的文书档案中创立加载项和代码。通过将此属性设置为false,您能够有效地将具备别的代码加载到Excel中,直到将其设置为TRue甘休。

此属性尝试修复的标题是你的代码调用方法的难点,进而引发代码上的事件。您大概不指望吸引该事件,因为您调用该方法,因而你不愿意将代码文告其已知的内容。

比方说,您的代码也许会调用多个格局,比方在专门的工作簿上关闭,那将促成Excel引发BeforeClose事件。在此种状态下,假诺要防范BeforeClose事件管理程序运维,您有多少个筛选比选用Enable伊芙nts越来越好。第叁个选用是在调用Close方法早先甘休侦听BeforeClose事件。第叁个选项是创建八个爱戴变量,您能够在调用关闭此前设置。
BeforeClose的事件管理程序能够检查维护变量,假若设置了维护变量,则随时重回。

调节Excel中的编辑体验
Excel提供了无数可用于调节Excel中编辑体验的习性。要询问这几个属性控件的有些Excel编辑体验,请运行Excel实例并创办二个空荡荡职业表。单击该工作表中的单元格,然后键入三个数字。请留意,Excel能够在单元格中输入,也可以在窗口顶端展现公式栏。您能够运动单元格内的插入点,以更为编辑单元格的内容。编辑单元格后按Enter键,Excel将运动到下一个单元格。
(您的编纂设置大概分歧,但此证实代表Excel 二〇〇一的默许行为。)

Excel可以由此“选项”对话框的“编辑”选项卡中的“直接编辑单元格”选项来决定单元格内容是或不是足以平昔在单元格内编辑。
EditDirectlyInCell属性可以令你在代码中改动此设置。将此属性设置为false会使客商只可以利用公式栏编辑单元格的原委。

编排单元格后按Enter键,Excel通常会移动到正在编写制定的单元格上面包车型地铁单元格中。您可以在“选项”对话框的“编辑”选项卡中央调控制此展现。
MoveAfterReturn属性和MoveAfterReturnDirection属性让你能够在代码中央调控制此作为。通过将MoveAfterReturn设置为true,您能够在客户按Enter键后布告Excel修改所选单元格。借使MoveAfterReturn设置为TRue,则MoveAfterReturnDirection调整客商按Enter后Excel移动到的单元格。
MoveAfterReturnDirection能够设置为XlDirection枚举的积极分子:xlDown,xlToLeft,xlToRight或xlUp。

控制Excel的外观
您可以透过表5-1中列出的性子来调节Excel的外观。

表5-1 调节Excel客户界面成分的习性

澳门新葡萄京官网注册 2

 

 

决定文件和打字与印刷机设置
你能够透过SheetsInNewWorkbook属性成立新的空域专业簿时配置该作为。此属性对于应在新职业簿中开创的空域专门的学业表数量使用八个int值。私下认可是四个空白专门的学业表。与大部分那个设置同大器晚成,您还足以在Excel的“选项”对话框的“常规”页面中开展设置。

DefaultFilePath属性对应于Excel“选项”对话框的“常规”页面中的暗中同意文件地方设置。您能够将其安装为表示你希望Excel在开发和保留文件时暗中同意使用的公文路线的字符串。

你能够设置Excel使用DefaultSaveFormat属性保存文件时利用的默许文件格式。此属性的类型为XlFileFormatan枚举,具备Excel帮忙的各个文件格式的值。举例,要将Excel文件暗许保存为Excel
5格式,请将此属性设置为xlExcel5。

管理公事时的另二个一蹴而就的性质是RecentFiles属性,它回到贰个包涵全体近日展开的文件名称的字符串集结。

重返活动或选定目的的性质
Application对象具备众多质量,再次来到活动指标,表示在Excel中处于活动状态或选拔的剧情。表5-2显得了中间的有的属性。

表5-2 再次来到活动指标的应用程序属性

澳门新葡萄京官网注册 3

 

回来首要收藏的属性
Application对象是指标模型的根对象,并有着重临多少个重大汇聚的属性。
Workbooks属性再次回到Excel中张开的职业簿的集纳。
Windows属性重临三个意味Excel中开采的窗口的聚合。本章后边将更详尽地争辨工作簿和Windows集结。

支配专门的学业簿的揣度
Excel提供了有的与“选项”对话框的“总括”页面中的有个别选项对应的设置和形式。
Application对象提供了XlCalculation类型的“总括”属性,可用来设置Excel的精兵简政行为。暗中同意意况下,“计算”设置为自发性测算或xlCalculationAutomatic。您还足以将计算设置为xlCalculationSemia自动,那意味着计算除数据表之外的兼具附属公式。最终,计算能够安装为xlCalculationManual,那象征当顾客或你的代码强制总结时,Excel只会重新总结职业簿。

即使已将“总括”设置为xlCalculationManual或xlCalculationSemia自动,则足以采纳Calculate方法强迫对全体展开的专门的学问簿进行完全重复总结。假若要更改公式援用的大方单元格,则运用手动计算恐怕是加快代码的另生机勃勃种方法。与别的应用程序级属性相通,您应该在finally块中回复属性的原始值,如本章前面所示。

在你的代码中运用内置的Excel函数
WorksheetFunction属性重返叁个WorksheetFunction对象,使您能够从代码调用内置的Excel公式。它提供访谈超越1七十九个公式。项目清单5-4验证了当中的八个。

清单5-4 使用WorksheetFunction对象的VSTO自定义

private void Sheet1_Startup(object sender, System.EventArgs e)
{
  Excel.WorksheetFunction func = this.Application.WorksheetFunction;
  double result = func.Acos(.1);
  double result2 = func.Atan2(.1, .2);
  double result3 = func.Atanh(.1);
}

选料和激活一五光十色单元格
Goto是风华正茂种使Excel能够筛选大器晚成密密层层单元格并激活与该单元格范围相关联的职业簿的方法。
它须要一个可选的目的参数,能够是富含单元格援用的字符串(“Sheet1!奥迪Q51C1”格式)或Range对象。
在本章前面包车型客车“使用范围对象”后生可畏节中,我们将详细介绍单元格参谋格式,如“Sheet1!GL4501C1”。
它还索要三个可选的靶子参数,可以将其设置为TRue,以告诉Excel滚动窗口,以便接纳坐落于窗口的左上角。
清单5-5显示了有的调用Goto方法的例证。

清单5-5  使用Goto方法的VSTO定制

 

private void Sheet1_Startup(object sender, System.EventArgs e)
{
  Excel.Application app = this.Application;

  app.Goto("R3C3", missing);
  app.Goto("Sheet2!R10C5", true);
  app.Goto("[BOOK1.XLS]Sheet1!R4C4", true);
  app.Goto(this.get_Range("R8C2", missing), true);
  app.Goto(this.get_Range("R1C1", "R20C3"), true);
}

拼写检查
Excel提供了豆蔻梢头种名称叫CheckSpelling的办法,可用于检查单个单词的拼写。
它必要贰个含有要反省的字符串的触手生春字符串参数。
它还供给二个可选的指标参数,可以将其设置为要接收的自定义词典的文本名的字符串。
最终,它须要叁个可选的目的参数,能够安装为true,以便在拼写检查时大意大写字母。
借使传递给它的单词拼写错误,CheckSpelling重临false。
清单5-6展现了调用CheckSpelling方法的示范。

清单5-6  使用CheckSpelling方法的VSTO定制

private void Sheet1_Startup(object sender, System.EventArgs e)
{
  Excel.Application app = this.Application;

  if (!app.CheckSpelling("funtastic", missing, missing))
  {
    MessageBox.Show("Funtastic was not spelled correctly".);
  }

  if (!app.CheckSpelling("fantastic", missing, missing))
  {
    MessageBox.Show("Fantastic was not spelled correctly.");
  }

  if (!app.CheckSpelling("FUNTASTIC", missing, true))
  {
    MessageBox.Show("FUNTASTIC was not spelled correctly.");
  }
}

在电子邮件中发送工作簿
Excel提供了豆蔻年华种选拔称为MailLogon,Workbook.SendMail和Mail图标ff的二种艺术将工作簿作为电子邮件发送的轻便方法。
Mail图标n登入到邮件系统,并将客户名作为字符串,顾客的密码作为字符串,以致是或不是及时下载新邮件作为bool。
检查MailSession属性以作保邮件会话还未有创设也很主要。
借使MailSession不为空,则无需调用MailLogon方法。
若是有多个收件人,若是唯有一个收件人或字符串数组,Workbook的SendMail方法将收件人看做必备的字符串。
它还将新闻的宗旨用作字符串,以致是不是须求读取收据作为bool。
事项清单5-7来得了三个邮件专门的学业簿的简易示例。

清单5-7  邮件专门的职业簿的VSTO定制

private void ThisWorkbook_Startup(object sender, EventArgs e)
{
  Excel.Application app = this.Application;

  if (app.MailSession == null)
  {
    app.MailLogon(@"DOMAINJOHN", @"JOHN", missing);
  }

  this.SendMail(@"bar@domain.com", "Test message", missing);
  app.MailLogoff();
}

退出Excel
您能够动用“退出”方法退出Excel。
要是其它未保存的职业簿展开,Excel将唤起客商保存种种未保存的工作簿。
您能够经过将DisplayAlerts属性设置为false来禁绝提醒,那将促成Excel退出而不保留工作簿。
您还足以检查各样工作簿上的Workbook.Saved属性,并调用Workbook.Save保存种种未保存的工作簿。
请记住,当客商被唤起保存时,会现身如图5-1所示的对话框。
假使顾客单击“打消”按钮,或许正在运行的代码正在管理BeforeClose事件并将撤消参数设置为“TRue”,Excel将不会退出。

图5-1  当您呼叫退出而且必要保留职业簿时,Excel会提醒您

澳门新葡萄京官网注册 4

在Excel中撤消
Excel具有裁撤方法,可用于撤废顾客实践的末尾多少个操作。可是,Excel不扶植撤销您的代码施行的操作。黄金时代旦你的代码触及对象模型,Excel会消除打消历史记录,况且不会将代码实行的别的操作增加到撤销历史记录中。

出殡键盘命令到Excel
Excel提供了风流倜傥种名字为SendKeys的方法,当您不可能找到通过对象模型达成命令的办法时,您能够将其看做最终的花招,但你了然哪些通过键盘命令完成命令。它须要您作为字符串发送到应用程序的密钥,就算设置为true,则等待参数会导致Excel在将控件重返到代码以前等待Excel管理开关。您能够由那件事情未发生前设定要由其他剧中人物发送的按钮来钦命Alt,Ctrl和Shift等修饰键。比方,要发送Alt
+
T键命令,您能够调用SendKeys(“%t”,Type.Missing),因为%是SendKeys识别为Alt的记号。符号SendKeys识别为Ctrl为^,Shift为+。此外,特殊的字符串对应于诸如向下箭头的键。要向Excel发送向下箭头键盘,您能够调用SendKeys(“{DOWN}”,Type.Missing)。表5-3列出了与普通键对应的任何异样字符串。

表5-3  SendKeys使用的代码

 澳门新葡萄京官网注册 5