本帖最后由 zixuan203344 于 2021-6-11 20:11 编辑
1. 背景
最近在做资料,需要把一个excel表格的内容,按行,分别填写到一个有规定格式的word文档中。
2. 思考
思索了一下,有以下三种方法:
- 古典办法:将word模板复制所需要的份数,然后每个文件重命名好,打开excel表格,按模板,将表格对应位置复制到word,保存,打开下一个……循环,over!但是我需要处理100行数据,如果这样搞完,估计再见我已是白发苍苍
- 自己写程序:也不是不会写,但是吧,下周就要检查资料,估摸着检查完了,程序还没调试完,况且过节还要出去浪,对吧
- 用别人写好的:论坛里搜了下,有python版本的,有.NET版本的,具体没测试,大部分都没GUI交互模式,用着不是很舒服,然后,然后,我找到了网上的.NET写的有GUI的,测试效果还可以:
3. 问题
这个玩意好是好,但是吧,也有不好的地方,比如点击“设置文件夹”,
弹出的这设置文件夹的窗口,不能输入地址,如果我文件目录比较深,那就很难受了,得找个百八十年,找到估计还得白发苍苍
4. 找资料
查了下,.NET里面,有很多种打开文件夹的方式,比如FolderBrowserDialog,OpenFileDialog,FolderBrowserDialog,CommonOpenFileDialog
等,具体代码自己看 点我查看
很明显,上面用的是第一种:系统原生的FolderBrowserDialog,不支持路径输入,那我能不能手动把程序里面的打开文件夹的API改成CommonOpenFileDialog呢?实践出真知,那就试一试吧!
5. 操作
-
查壳,没壳
-
找到引用FolderBrowserDialog的位置
-
修改代码
-
点编译,发现报错了,那就看看具体错误是啥,并解决错误
看了下,基本上就是没引用库啥,那就添加引用好了
-
复制Microsoft.WindowsAPICodePack.dll和Microsoft.WindowsAPICodePack.Shell.dll到文件根目录下
-
添加windowsBase引用,添加Microsoft.Office.Interop.Word引用,添加Microsoft.WindowsAPICodePack.dll和Microsoft.WindowsAPICodePack.Shell.dll引用,添加using Microsoft.WindowsAPICodePack.Dialogs;代码
-
完事儿点编辑,发现还有一个报错,意思是不知道window他爹是谁,那很明显,这是system.windows.window的,不是word的,那就删掉using Microsoft.Office.Interop.Word;即可,完事了点编译,没报错,然后点保存
-
最终效果
上下都能输入路径,再也不用点完就白发苍苍了。
6. 后记
遵循科学的解决问题思路,遇到问题,找资料,解决问题,不用等到白发苍苍(^▽^)
7. 附件
此帖仅为技术交流,不提供任何附件,over!
|