前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Excel催化剂开源第19波-一些虽简单但不知道时还是很难受的知识点

Excel催化剂开源第19波-一些虽简单但不知道时还是很难受的知识点

作者头像
Excel催化剂
发布2021-08-19 15:03:52
7970
发布2021-08-19 15:03:52
举报
文章被收录于专栏:Excel催化剂

通常许多的知识都是在知与不知之间,不一定非要很深奥,特别是Excel这样的应用工具层面,明明已经摆在那里,你不知道时,永远地不知道,知道了,简单学习下就已经实现出最终的功能效果。

在程序猿世界里,也是一样,很多工具类的功能,可以在代码里复用,当不知道时,自己从头造轮子,也是一件吃力不讨好麻烦事。

此篇提供一些简单的知识点,部分有代码段,部分只是操作界面即可得到,供VSTO新手们学习。

查找枚举型的完整命名空间

在录制宏中,得到的代码,虽然绝大部分是很容易改写成VB.Net或C#代码的,但有一个小问题是当录制出来的代码有枚举类型时,在VBA里的枚举是不带命名空间的,在VSTO里,是需要补全此命名空间的,怎样可以补全这些命名空间不报错?

以下为VBA代码,通过录制宏即可得到,将单元格内容居中显示。

代码语言:javascript
复制
Sub 宏1()
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
End Sub

将其改为VSTO的.Net代码,有xlCenter、xlContext的枚举类型的问题需要补全。 有些时候看VS的参数提示可以得到,但有些是得不到的。

参数提示也不能知道哪个命名空间

参数提示可以知道哪个命名空间

在不能知道时,有个很简单的方法,通过查找对象浏览器即可得到

对象浏览器入口

搜索结果简单识别下即可找到答案

配置信息存储

许多时候需要存储一些配置信息,可以自行新建xml、ini文件等方式存储,但其实有一更简单的方式,直接存储在Setting类上,当调用时,还可以有强类型引用的方式调用,智能提示并有数据类型区分。

整个设置过程中,只需界面的方式设置,同时选择对应的数据类型,同时需要注意范围是用户还是应用程序级的。

用户的话,可以供用户修改,程序级的就是不修改的,固定保存到程序中的,比硬代码写在代码里维护要方便。

Setting界面化设置

同样地数据类型方面,可以有复杂的集合类型,加上自己用分隔符分开,可以满足存放一个多列数据表清单数据。

集合数据类型

修改代码

代码语言:javascript
复制
                Properties.Settings.Default.SpotLightColor = colorDialog.Color;
                Properties.Settings.Default.Save();

读取代码

代码语言:javascript
复制
  SolidBrush brush = new SolidBrush(Properties.Settings.Default.SpotLightColor);

颜色的转换

在这个ColorTranslator工具类中,有我们日常所要用到的颜色转换现成功能,颜色有以下四种分类 Win32颜色、Html颜色、Ole颜色和标准的.Net颜色。

对于我们OFFICE使用的颜色,就是Ole颜色,对应于VBA接口的Color属性值

一般来说在VSTO的.Net环境下,引用的颜色是标准.Net颜色,需要和OFFICE的颜色进行转换,转换的代码也异常简单,只需调用一个方法即可。

Color转换

日期的转换

同样地,在日期转换上,也直接有OLE的日期格式,这个方法也是后来偶然知道的,在Excel自定义函数里还傻傻地写过一个转换函数。

OLE日期转换1

OLE日期转换2

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-01-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Excel催化剂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 查找枚举型的完整命名空间
  • 配置信息存储
  • 颜色的转换
  • 日期的转换
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档