OPEN XML SDK无限循环

ock

我已经根据一些教程编写了一些代码,以使用数据库表中的数据更新现有的Word文档。

我不断使程序崩溃,并建议我可能有一个无限循环,但是我对每条语句使用a,并且在调试时它告诉我我只有一条记录。无法了解问题所在。

如果有人可以提供帮助,将不胜感激。下面的代码

控制器

    using System.Web.Mvc;
using Mojito.Models;


namespace Mojito.Controllers
{
    public class KronosDesignDocumentController : Controller
    {
        private MojitoContext _db = new MojitoContext();
        //
        // GET: /KronosDesignDocument/
        public ActionResult Index()
        {
            ViewBag.CustomerId = new SelectList(_db.Customers, "CustomerId", "CustomerName");
            return View();
        }


        [HttpPost]
        public ActionResult Load(int customerId)
        {
            var kronosDesignTemplate = new KronosDesignDocument.CreateDesignDoc(@"C:\Users\Craig Cocker\Documents\XML Files\Test_Design_Template.docx");

            kronosDesignTemplate.CustomerDesignDocument();

            ViewBag.CustomerId = new SelectList(_db.Customers, "CustomerId", "CustomerName");
            ViewBag.Message = "Configuration has been loaded successfully";
            return View("Index");
        }


    }
}

模型

using System.Collections.Generic;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;
using System.Linq;


namespace Mojito.Models
{
    public class KronosDesignDocument
    {
        public static MojitoContext _db = new MojitoContext();

        public class CreateDesignDoc
        {
            private readonly string _xmlPath;
            //private readonly int _customerId;

            public CreateDesignDoc(string pathToXmlFiles)
            {
                _xmlPath = pathToXmlFiles;
            }

            public IEnumerable<Customer> CustomerDesignDocument()
            {

                WordprocessingDocument myDoc = WordprocessingDocument.Open(_xmlPath, true);

                var docPart = myDoc.MainDocumentPart;
                var doc = docPart.Document;
                var table = new Table();

                var tb = new TopBorder();
                tb.Val = BorderValues.DashDotStroked;
                tb.Size = 12;

                var borders = new TableBorders();
                borders.TopBorder = tb;

                borders.LeftBorder = new LeftBorder() {Val = BorderValues.Single, Size = 12};
                borders.RightBorder = new RightBorder() {Val = BorderValues.Single};
                borders.BottomBorder = new BottomBorder() {Val = BorderValues.Single};
                borders.InsideHorizontalBorder = new InsideHorizontalBorder() {Val = BorderValues.Single};
                borders.InsideVerticalBorder = new InsideVerticalBorder() {Val = BorderValues.Single};

                var props = new TableProperties();
                props.Append(borders);

                table.Append(props);

                var customers = _db.Customers.ToList();
                var customerCollection = new List<Customer>();


                foreach (var c in customers)
                {
                    var tr = new TableRow();
                    var customerName = c.CustomerName;

                    var tc = new TableCell();

                    var runProp = new RunProperties();
                    runProp.Append(new Bold());
                    runProp.Append(new Color() {Val = "FF0000"});

                    var run = new Run();
                    run.Append(runProp);

                    var t = new Text(customerName);
                    run.Append(t);

                    var justification = new Justification();
                    justification.Val = JustificationValues.Center;
                    var paraProps = new ParagraphProperties(justification);

                    var p = new Paragraph();
                    p.Append(paraProps);
                    p.Append(run);
                    tc.Append(p);

                    var tcp = new TableCellProperties();
                    var tcw = new TableCellWidth();
                    tcw.Type = TableWidthUnitValues.Dxa;
                    tcw.Width = "2000";
                    tcp.Append(tcw);
                    tcp.Append(tcp);
                    tr.Append(tc);
                    table.Append(tr);
                }
                doc.Body.Append(table);
                doc.Save();
                return customerCollection;
            }
        }
    }
}

看法

@model Mojito.Models.KronosDesignDocument


@{
    ViewBag.Title = "Kronos Design Document";
}

<h1>Load Kronos Data</h1>
<h2>@ViewBag.Message</h2>


@using (Html.BeginForm("Load", "KronosDesignDocument", FormMethod.Post))
{
    @Html.AntiForgeryToken()


    <div class="form-horizontal">
        <hr />
        @Html.ValidationSummary(true)
        <div class="form-group">
            <div>@Html.Partial("~/Views/Shared/_Customer.cshtml")</div>
        </div>

        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <label for="file">Filename:</label>
                <input type="file" name="file" id="file" />
                <input type="submit" value="Create Design Document" class="btn btn-default" />
            </div>
        </div>
    </div>
}

<div>
    @Html.ActionLink("Back to List", "Index")
</div>
勒内

在创建文档的方法中,您具有以下这一行:

tcp.Append(tcp); 

基本上为其自身添加了参考。我以为OpenXML的东西希望您能够处理此类自引用,如果您不这样做,那么剩下的唯一方法就是使用StackOverflow异常中断。

如果修好那条线,

tc.Append(tcp);

一切都很好...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

NUGET上的Microsoft OPEN XML sdk 2.5

来自分类Dev

使用Open XML SDK 2.0获取占位符值

来自分类Dev

对服务器实施Open XML SDK 2.5

来自分类Dev

无法使用Open XML SDK创建文档

来自分类Dev

如何指定不使用Open XML SDK包装Word TableCell?

来自分类Dev

使用Open XML SDK读取Excel图表模板(* .crtx)

来自分类Dev

在UWP中使用OPEN-XML SDK生成Doc文件

来自分类Dev

插入图像会损坏Open XML SDK生成的Word文件

来自分类Dev

如何使用 Open XML SDK 在 PPTx 中插入视频?

来自分类Dev

Open XML SDK:如何为WordprocessingDocument.Open获取有效的Word文档

来自分类Dev

Add Footer only to last page of the word document using open XML sdk with C#

来自分类Dev

有什么方法可以将ID分配给Open XML SDK 2.5中的段落?

来自分类Dev

如何使用Open XML SDK在.xlsx文件的现有行中添加新单元格?

来自分类Dev

如何使用Open XML SDK将文本插入内容控件

来自分类Dev

使用F#和Open XML SDK读取Excel文件中的单元格内容

来自分类Dev

使用Open XML SDK检索内容控件时出现问题

来自分类Dev

在 Open XML SDK 2.5 中创建的文件在选择打印时崩溃 excel

来自分类Dev

Open Office XML解析错误

来自分类Dev

使用open时会导致无限循环的原因是什么?(C,UNIX)

来自分类Dev

JSF ExternalContext.redirect IE window.open 上的无限循环

来自分类Dev

如何使用Open XML .net SDK将幻灯片编号添加到PowerPoint演示文稿中?

来自分类Dev

Open Office xml SDK异常“无法插入OpenXmlElement“ newChild”,因为它是树的一部分“

来自分类Dev

For 循环和 open 语句

来自分类Dev

Office Open XML日期不起作用

来自分类Dev

这是正确的Open Office XML吗?

来自分类Dev

如何使用 Linq 打开 Open XML

来自分类Dev

此Office Open XML示例中的XML在哪里?

来自分类Dev

ASP.NET Web APP和Web API中的Azure AD Open ID Connect OAuth 2.0无限重定向循环

来自分类Dev

php中的facebook SDK 4.0无限重定向循环

Related 相关文章

  1. 1

    NUGET上的Microsoft OPEN XML sdk 2.5

  2. 2

    使用Open XML SDK 2.0获取占位符值

  3. 3

    对服务器实施Open XML SDK 2.5

  4. 4

    无法使用Open XML SDK创建文档

  5. 5

    如何指定不使用Open XML SDK包装Word TableCell?

  6. 6

    使用Open XML SDK读取Excel图表模板(* .crtx)

  7. 7

    在UWP中使用OPEN-XML SDK生成Doc文件

  8. 8

    插入图像会损坏Open XML SDK生成的Word文件

  9. 9

    如何使用 Open XML SDK 在 PPTx 中插入视频?

  10. 10

    Open XML SDK:如何为WordprocessingDocument.Open获取有效的Word文档

  11. 11

    Add Footer only to last page of the word document using open XML sdk with C#

  12. 12

    有什么方法可以将ID分配给Open XML SDK 2.5中的段落?

  13. 13

    如何使用Open XML SDK在.xlsx文件的现有行中添加新单元格?

  14. 14

    如何使用Open XML SDK将文本插入内容控件

  15. 15

    使用F#和Open XML SDK读取Excel文件中的单元格内容

  16. 16

    使用Open XML SDK检索内容控件时出现问题

  17. 17

    在 Open XML SDK 2.5 中创建的文件在选择打印时崩溃 excel

  18. 18

    Open Office XML解析错误

  19. 19

    使用open时会导致无限循环的原因是什么?(C,UNIX)

  20. 20

    JSF ExternalContext.redirect IE window.open 上的无限循环

  21. 21

    如何使用Open XML .net SDK将幻灯片编号添加到PowerPoint演示文稿中?

  22. 22

    Open Office xml SDK异常“无法插入OpenXmlElement“ newChild”,因为它是树的一部分“

  23. 23

    For 循环和 open 语句

  24. 24

    Office Open XML日期不起作用

  25. 25

    这是正确的Open Office XML吗?

  26. 26

    如何使用 Linq 打开 Open XML

  27. 27

    此Office Open XML示例中的XML在哪里?

  28. 28

    ASP.NET Web APP和Web API中的Azure AD Open ID Connect OAuth 2.0无限重定向循环

  29. 29

    php中的facebook SDK 4.0无限重定向循环

热门标签

归档