Hey,How are you doing?
2020 年,对于我来说,既是机遇,也是挑战。
所谓挑战,是指 C# 实现办公自动化的系统课程几乎空白。
所谓机遇,是指做好了有可能成为 C# 办公自动化第一人。
我不是专业码农,没有太多项目经验。
庆幸的是,日常办公中接触到了很多高度重复的工作。
我的目的很明确,就是想通过 C# 实现重复工作自动化。
也许骨子里和很多人不同,我并没有追 Python 的风。
C/C++,大佬们通常用于操作系统、硬件底层等领域。
而 Python 主攻人工智能。
由于 VBA 存在,Python 并不是最适合办公自动化的工具。
1995 年 Java 诞生,2002 年 C# 诞生,
Java 和 C#同属 C 系语言,但 C# 比 Java 简洁易学。
如果你是想找工作,你可以学习 Java。
咱们目的是实现重复工作自动化,
使用 C# 则可以实现更早下班。
我并不是特别厉害,曾研究过 2 个月 VBA 没有继续深造。
略懂一些基础语法,我感觉这样,其实就已经足够了。
通过短暂学习,我知道 VBA 是通过 COM 组件实现办公自动化。
其实,我也可以通过 COM 组件,用 C# 实现办公自动化。
就是抱着这样一种纯碎想法,我开了新坑[职场编码],
致力于贡献一些职场小白实现效率提升的小技巧。
说句实在话,我学了 2 个月 VBA,就已经对 Sub+End Sub,
With+End With 产生依赖了。
VBA 实在太好用了,那时根本瞧不上 C#。
2020 年 1 月下旬,在家憋着没事,就开始研究 C#,从基础语法,看到最新特性,
经过将近 4 个月的磨合,我发现,
自己竟然喜欢上了优雅的 {花括号} 和[索引]。
前者可以快速区分代码块,而不必使用游标卡尺为缩进而烦恼。
后者可以快速引用对象,而不必与对象的(方法)混为一谈。
前面,我所说的 COM 组件是指:
- Microsoft.Office.Interop.Word;
- Microsoft.Office.Interop.Excel;
- Microsoft.Office.Interop.Powerpoint;
当然还有其他的组件,如 Access、Publisher、Visio 等。
因为日常接触到的基本就是办公三大件。
今后粉丝有需求,我会再开专题,详细讲解其他组件。
我们是技术文,排版其实不是最重要的。
通常推文以技术为主,若哪里看不懂,
或者我写得不够明确,欢迎私信联系。
下面,我们来看一下如何自动生成信息卡。
根据操作示意图,我们可以得知,只要把 Excel 数据写入 Word 模板里就可以了。
首先,我会在 Word 里建立一张信息卡模板,放在文件夹~c003\bin\Debug\。
接着,我用 Sharp Develop 创建一个控制台应用程序。
大致思路:观察一下,Excel 共有 10 条数据准备写入,
那我就把 Word 模板复制 9 份,接着使用代码循环写入就可以了。
001 准备工作
日常引用 Word\Excel,System.Runtime.InteropServices 杀进程专用空间。
002 开始工作
- 常规操作:声明、可见、定义、打开 Word\Excle。
- 创建表格:通过 Mxr- 2 控制循环次数,Wdc.Tables.Count 计算表格个数。
- 数据写入:通过 Wdc.Tables[].Cell().Range.Text=Eap.Worksheets[].Cells().value.ToString()实现数据写入。
003 扫尾工作
通过定义 Kill 方法,调用 Kill 方法实现 Excel 进程终结。
下面是源码贴图,如果你也想深入学习,回复 源码 获得源代码供你参考。
———— The End ————