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