小编Jes*_*erg的帖子

如何从模板以编程方式创建word文档

我试图在microsoft office Word中创建大约600个报告.文档中填充了数据库中的数据和本地驱动器上的图像.我已经想到,我可以在visual studio 2010中创建一个Word模板项目,并对模板进行编程,这样当您输入单个值(id-number)时,它会自动填写整个文档.

我很有信心这是可能的.唯一的问题是.如何遍历数据库中的所有条目,根据模板打开新文档并设置id-value?

for(int i = 0; i < idnumbers.Count(); i++)
{
     Word.Application app = new Word.Application();
     Word.Document doc = app.Documents.Add(@"C:\..\WordGenerator\bin\Debug\WordTemplate.dotx");
     //input the id-number below: HOW??

     doc.SaveAs(FileName: @"c:\temp\test.docx"); 
}
Run Code Online (Sandbox Code Playgroud)

应用程序应该只运行一次,生成报告,而且不一定要快.它必须易于开发.

这里的问题是,似乎在Word项目之外无法访问DocumentBase对象.替代Microsoft.Office.Interop.Word.Document没有像SelectContentControlsByTitle这样的功能,它允许我查找和设置我的ContentControls.而这正是我需要做的......

这就是我的代码现在将文本插入我的字段:Word.Application app = new Word.Application();

        Word.Document doc = app.Documents.Add(@"C:\..\test.dotx");

        foreach (Word.ContentControl cc in doc.SelectContentControlsByTitle("MyCCTitle"))
        {
            cc.Range.Text += "1234";
        }

        doc.SaveAs(FileName: @"c:\temp\test.docx");
Run Code Online (Sandbox Code Playgroud)

然后我的模板上的事件处理程序在BeforeSave上根据MyCCTitle标题对象中的文本填写文档.

c# ms-word office-interop

17
推荐指数
4
解决办法
6万
查看次数

为什么我的WCF服务返回FaultException,在10次调用后超时?

我有一个WCF服务,有时必须返回一个错误.由于某种原因,对我的服务的调用开始超时,并出现以下错误:"在00:00之后等待回复时请求通道超时:59.8906201.增加传递给Request的调用的超时值或增加SendTimeout绑定的值.分配给此操作的时间可能是较长超时的一部分."

检查问题后,出现了一种模式:当服务10次返回故障时,超时开始.所以我创建了一个由以下实现的测试服务:

public string GetData(int value)
{
    throw new FaultException("A testerror occured");
}
Run Code Online (Sandbox Code Playgroud)

还有一个测试客户:

   protected void RunTestGetData()
    {
        using (TestServiceReference.Service1Client client
            = new WSPerformanceTester.TestServiceReference.Service1Client())
        {
            try
            {
                client.GetData(1);
                client.Close();
                outputWriter.WriteLine(string.Format("Call run in thread {0}: GetData()", Thread.CurrentThread.ManagedThreadId));
                outputWriter.Flush();
            }
            catch (Exception e)
            {
                client.Abort();
                client.Close();
                outputWriter.WriteLine(string.Format("Error occured in thread {0}: GetData(): {1}", Thread.CurrentThread.ManagedThreadId, e.Message));
                outputWriter.Flush();
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

只有在服务返回FaultException时才会发生这种情况.如果我抛出正常异常,服务可以在第10次调用后继续运行.显然,我想很好地包装我的异常,所以抛出正常异常并不是一个真正的选择.

为什么我会遇到这些超时异常?在此先感谢任何帮助..

.net wcf web-services exception fault

8
推荐指数
1
解决办法
8680
查看次数

标签 统计

.net ×1

c# ×1

exception ×1

fault ×1

ms-word ×1

office-interop ×1

wcf ×1

web-services ×1