美文网首页
基于C#的对DOC文件修改的小系统

基于C#的对DOC文件修改的小系统

作者: genglintong | 来源:发表于2018-01-15 17:49 被阅读138次

起源

我哥在家乡的一家电影放映场工作,由于不太先进的设备,导致每一次打印机打出都号码都与座位号对应不上,所以就跟我聊,问能不能写一个方便一点的小系统。

抽象设计

  • 选择编程语言
    这个小代码的难点是如何操作(WORD文本)以及如何方便安装使用,至于性能,可能不需要考虑的太多。由于之前写了两个JAVA与PHP的WEB网站,就想用WEB网站的形式。但是由于需要稳定服务器就被迫放弃了,因为没有必要。
    简单调研了一下,决定用C#编写一个单机版的客户端小程序。一是因为简单,二是因为c#对word的操作应该更好支持。
  • 是否选择数据库
    如上面所言,使用数据库还要安装,使用线上资源没必要,而且就算使用本地数据,由于操作可能需要一定的技术功底,所以也暂时放弃。
    -程序设想
    一个单机版的可以通过word模板去生成对应的电影票信息的word文本的软件。
    捕获1.PNG 并且要在每一步对应打上log,方便纠错与统计。

难点解析

c#直接使用net框架很方面的完成图形界面的编写以及按钮的颜色改变,按钮信息获取等,这些就不再阐述了,接下来我主要写一下关于如何使用c#操作word以及如何编写一个简单的日志类。 界面.PNG

已售出自动修改为红色且不再可选,点击座位号,确认可以生成对应word.

  • 操作word模板
    c#操作word的两种方式:
    1. 使用office.Core.dll 引用 office.PNG 直接添加引用,搜索office就可以,它使用的是你电脑office上的dll引用,不过感觉上使用起来比较复杂。推荐第二种。
    2. 使用Aspose.WORD for net 进行操作
    Aspose 官网下载 此处需要google CSDN下载(破解版)

    操作WORD:
    使用上面两种方式操作一个word文件都是很麻烦的,因为word和txt不同,它有很多编码,字号缩进等设置,要找到编辑的地方很麻烦。在查了一些资料以后,发现微软word有一个很好的功能书签,它可以理解为一个key,对应的value即为所需要编辑的word的地址位置。查看详细 书签.PNG
    1. office 操作代码
                //赋值书签名
                oBookMark[0] = "movieName";
                oBookMark[1] = "pai";
                oBookMark[2] = "pai1";
                oBookMark[3] = "hao";
                oBookMark[4] = "hao1";
                doc = wordApp.Documents.Open("D://test//test.doc");
                //插入对应书签  对应值
                doc.Bookmarks.get_Item(ref oBookMark[0]).Range.Text = movieName;
                doc.Bookmarks.get_Item(ref oBookMark[1]).Range.Text = pai;
                doc.Bookmarks.get_Item(ref oBookMark[2]).Range.Text = pai;
                doc.Bookmarks.get_Item(ref oBookMark[3]).Range.Text = hao;
                doc.Bookmarks.get_Item(ref oBookMark[4]).Range.Text = hao;
                //另存为   savePath  路径
                doc.SaveAs2(savePath);
                TraceHelper.GetInstance().Info("已保存至" + savePath, "WordRW Function");

                doc.Close(ref unknow, ref unknow, ref unknow);
                wordApp.Documents.Save(ref unknow, ref unknow);
                wordApp.Quit(ref unknow, ref unknow, ref unknow);

2.Aspose 操作代码

                //初始化信息
                doc = new Aspose.Words.Document("test.doc");
                DocumentBuilder bulider = new DocumentBuilder(doc);
                //移动并写对应信息
                bulider.MoveToBookmark(oBookMark[0]);
                bulider.Write(movieName);
                bulider.MoveToBookmark(oBookMark[1]);
                bulider.Write(pai);
                bulider.MoveToBookmark(oBookMark[2]);
                bulider.Write(pai);
                bulider.MoveToBookmark(oBookMark[3]);
                bulider.Write(hao);
                bulider.MoveToBookmark(oBookMark[4]);
                bulider.Write(hao);
                //doc  另存
                doc.Save(savePath);
                TraceHelper.GetInstance().Info("已保存至" + savePath, "WordRW Function");
上述两种方式都可以做到我们想要的功能。 text.PNG
  • 日志类
    为了更好的调试代码,也为了保存一些有用的信息,所有日志是必不可少的。 已调研日志引用(EventLog Log4Net)但他们用起来都比较麻烦,因为他们都是为大型系统设计的,所以就用网上例子自己写了一个简单日志类(利用DEBUG)。
TraceHelper.GetInstance().Info("程序开始...", "Main Function");
log.PNG

详细使用请看代码 github

相关文章

  • 基于C#的对DOC文件修改的小系统

    起源 我哥在家乡的一家电影放映场工作,由于不太先进的设备,导致每一次打印机打出都号码都与座位号对应不上,所以就跟我...

  • 基于C#实现的文件管理系统

    一、项目背景 在内存中开辟一个空间作为文件存储器(虚拟磁盘),在其上实现一个简单的文件管理系统 退出这个文件系统时...

  • Python修改文档格式.doc转为.docx

    由于Python无法直接处理doc文件,需要先将doc文件强制另存为docx文件(使用代码转换,而不是直接修改后缀...

  • APK Signature Scheme v1 v2 v3

    v1 方案:基于 JAR 签名。APK文件可修改。 v2 方案:对APK 文件签名。APK文件不可修改。 v3 方...

  • 16.01.2018

    修改一下C#文件 MenuSelector.cs, VrInteractiveItem,farbeHighight...

  • C#基础

    微软Doc: C# 8.0 新增功能 —Using 声明 C# 8.0 新增功能 —Readonly C# 8.0...

  • Java实现非递归删除目录

    最近在学C#的文件系统, 发现C#的文件系统貌似比java的东西少一点, 居然连删除目录都直接做好封装了, 想到学...

  • Linux安装Grafana(Loki、promtail 日志监

    配置文件修改 loki-config.yaml直接下载下来不用修改promtail-config.yaml Doc...

  • 索引

    索引小知识 缓冲池 基于磁盘的数据库系统都会有缓冲池(页/块)写操作,将页读入缓冲池,在缓冲池中对页进行修改,修改...

  • kylin-kylin平台配置job邮件Notification

    基于kylin-3.0; 邮箱是基于outlook邮箱; 背景 修改kylin平台配置文件,对kylin平台job...

网友评论

      本文标题:基于C#的对DOC文件修改的小系统

      本文链接:https://www.haomeiwen.com/subject/ekddoxtx.html