C#与Office的集成

C# and Office integration(C#与Office的集成)
本文介绍了C#与Office的集成的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要关于走哪条路的建议。

我正在开发一个C#应用程序,我希望与Office套件进行一些集成。

该解决方案将用于法学院最后一个学期的学生/教师,他们服务于低收入家庭-我们的客户。

我们部门和客户之间几乎所有的互动都是由我们的实习生-法学院的学生完成的。

它当前的工作方式

  1. 我们的接待员将客户的基本数据添加到系统中,并安排访问。
  2. 在访问之前,我们的实习生查询内部系统查看客户数据。数据可能包括以前访问的记录。
  3. 学生会见客户,试图收集解决客户需求所需的所有信息。
  4. 然后实习生必须向主管(即教师)报告与客户的互动情况。为了做到这一点,实习生打开Word,输入一些基本信息(比如它的名字和老师)以及关于互动的信息。
  5. 实习生打印了报告,并拿去由他的老师批准。
  6. 在这里,老师做笔记/评估打印的报告,可能会发生三种情况:
    6.1-报告正确且具备所需的所有信息:老师原样批准;
    6.2-报告有些不正确:老师告诉学生要修改什么,下一个版本得到了默许;
    6.3-报告不正确:老师告诉学生需要修改的地方,下一个版本需要明确批准。他进行更改并返回步骤5。
  7. 报告获得批准后,实习生将从Office文档复制文本并将其粘贴/添加到我们的内部访问系统。
  8. 教师实际存储所有报告的版本。这些报告用于以后对学生进行评估。

问题

有时,在批准报告后,学生不会将批准的报告添加到我们的内部系统。与客户端的所有交互基本上都丢失了。

另一个是对纸的极端使用。每一份报告都是打印出来的。通常超过两次。

我的建议解决方案

我们在内部使用Office 2010。

在我们的内部系统中,当查看客户的历史记录时,会有一个按钮与内部应用程序并排启动Word。

此单词将删除"保存/另存为"按钮。以及许多用户不需要的控件。

此Word实例将有一个自定义的"保存"按钮,该按钮将报告保存在特定的网络区域,然后将其发送回我们的系统,从而关闭该Word实例。

此报告将在"未批准的报告队列"中显示给教师。然后,老师打开报告并对其进行分析。同样,应该显示一个自定义的Word实例,并启用Word的修订控件。教师将进行更改,并以三种状态之一(已批准、自动批准下一版本、重新评估下一版本)将其保存回我们的系统。

或者,教师可以在那里评估报告。我想像一条定制的丝带,他会在其中输入合适的值(比如注意细节、正确拼写、正确转发等等)。评估和版本都会被发回系统,学生会看到这一点。

再一次,学生将在他自己的系统上看到报告已经过评估,并且可以查看老师的笔记、更正和评估,以便准备下一个版本。

拒绝我

好的.我是不是飞得太高了?或者这是可行的?你能告诉我你会走哪条路吗?

你认为这很简单吗?还是硬的?你们觉得这需要多长时间?

我需要免费提供解决方案。我没有VS Professional,也没有使用付费框架/工具的批准。

我正在考虑使用NetOffice(http://netoffice.codeplex.com/)来实现这一点。或者您认为使用VBA会更容易吗?

我是否提出了太多问题?

Office

通常,在C#中处理推荐答案时有两个选项:

  1. 如果office文件来自Office2007及更早版本,您可以使用Microsoft提供的免费OpenXML Library直接在C#中读取和操作"docx"。但是只有当您确信可以完全用C#创建解决方案时才使用它,因为它实际上不会打开Word窗口。
  2. 您还可以使用Microsoft.Office.Interop.Word从C#自动执行Word。使用Interop,您可以操作Word本身支持的任何文件。我相信您也可以使用Interop操作Word本身(发送保存命令等)。

我强烈建议使用OpenXML,因为Interop的使用和调试有点麻烦。

这篇关于C#与Office的集成的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

DispatcherQueue null when trying to update Ui property in ViewModel(尝试更新ViewModel中的Ui属性时DispatcherQueue为空)
Drawing over all windows on multiple monitors(在多个监视器上绘制所有窗口)
Programmatically show the desktop(以编程方式显示桌面)
c# Generic Setlt;Tgt; implementation to access objects by type(按类型访问对象的C#泛型集实现)
InvalidOperationException When using Context Injection in ASP.Net Core(在ASP.NET核心中使用上下文注入时发生InvalidOperationException)
LINQ many-to-many relationship, how to write a correct WHERE clause?(LINQ多对多关系,如何写一个正确的WHERE子句?)