【问题标题】:Remove Table Header And Border In Aspose word .NET在 Aspose word .NET 中删除表格标题和边框
【发布时间】:2017-03-04 05:20:03
【问题描述】:

我正在做一个需要来自 word 模板的报告的项目。没有数据时,我需要删除表头和边框。我尝试了很多方法,但都在工作。

我的模板如下:

输出如下:

我想删除第 2 点的表格设计。

我的代码如下所示

DataTable dtPersonalInfo = new dalCoro_Report().GetNonEffCertPersonalInfo(MemberID);
        DataTable dtUnitAppt = new dalCoro_Report().GetNonEffCertExperienceUnitAppt(MemberID);
        DataTable dtCourseInfo = new dalCoro_Report().GetNonEffCertExperienceCourse(MemberID);
        DataTable dtMedalInfo = new dalCoro_Report().GetNonEffCertExperienceMedal(MemberID);
        DataTable dtUnMissionInfo = new dalCoro_Report().GetNonEffCertUN_MSN(MemberID);

        if (dtPersonalInfo.Rows.Count == 0)
            return;

        var fileName = "ExperienceCert_" + dtPersonalInfo.Rows[0]["PersonalNo"] + ".doc";
        var input = Server.MapPath(@"~\Coro_Report\Template\Certificates\6. Experience Cert2.doc");
        var output = Server.MapPath(@"~\Coro_Report\Report\" + fileName);

        var doc = new Document(input);


        dtPersonalInfo.TableName = "PersonalInfo";
        doc.MailMerge.ExecuteWithRegions(dtPersonalInfo);

        if (dtUnitAppt.Rows.Count > 0)
        {
            doc.MailMerge.TrimWhitespaces = false;

            dtUnitAppt.TableName = "UnitAppt";
            //doc.MailMerge.ExecuteWithRegions(dtUnitAppt);
        }

        if (dtCourseInfo.Rows.Count > 0)
        {
            doc.MailMerge.TrimWhitespaces = false;

            dtCourseInfo.TableName = "Course";
            doc.MailMerge.ExecuteWithRegions(dtCourseInfo);
        }
        else
        {
            doc.MailMerge.RemoveEmptyRegions = true;
        }

        if (dtMedalInfo.Rows.Count > 0)
        {
            doc.MailMerge.TrimWhitespaces = false;

            dtMedalInfo.TableName = "Medal";
            doc.MailMerge.ExecuteWithRegions(dtMedalInfo);
        }

        if (dtUnMissionInfo.Rows.Count > 0)
        {
            doc.MailMerge.TrimWhitespaces = false;
            dtUnMissionInfo.TableName = "UnMission";
            doc.MailMerge.ExecuteWithRegions(dtUnMissionInfo);
        }


        doc.MailMerge.CleanupOptions = MailMergeCleanupOptions.RemoveUnusedRegions | MailMergeCleanupOptions.RemoveUnusedFields | MailMergeCleanupOptions.RemoveContainingFields | MailMergeCleanupOptions.RemoveEmptyParagraphs;

        doc.MailMerge.DeleteFields();

        //Save the document
        doc.Save(output);

        ViewReport(fileName);

【问题讨论】:

  • 您似乎无法在此论坛中附加文件。我们需要最终测试这个场景。所以,请在Aspose.Words forum 中创建一个新帖子。请压缩并附上您的 1) 输入 Word 文件,2) Aspose.Words 生成的输出 Word 文档,3) 您的预期 Word 文档和简化的控制台应用程序(没有编译错误的源代码)在您的线程中进行测试。我们将调查我们最终的情况并为您提供更多信息。我与 Aspose 一起担任开发人员宣传员。

标签: .net ms-word tabular mailmerge aspose


【解决方案1】:

不确定如何在 Aspose 中执行此操作,但也许您可以尝试创建文档的两个部分(一个包含非空表,另一个包含空表/不包含表)。

然后你可以像在 Templater 中一样解决它,你可以看到例子:https://github.com/ngs-doo/TemplaterExamples/tree/master/Intermediate/WordDataTable%20(.NET)

【讨论】:

    猜你喜欢
    • 2011-01-06
    • 2013-08-08
    • 1970-01-01
    • 1970-01-01
    • 2019-04-10
    • 2010-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多