Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 表格单元格中的Xceed Docx错误段落间距_C#_.net_Docx_Xceed - Fatal编程技术网

C# 表格单元格中的Xceed Docx错误段落间距

C# 表格单元格中的Xceed Docx错误段落间距,c#,.net,docx,xceed,C#,.net,Docx,Xceed,我正在使用XceedDocx库生成一个Word文档,其中包含许多具有以下格式的表 问题是库似乎在单元格的第一段之前插入了一个空格,呈现如下 下面是我用来生成表的代码 private Table InitTable(DocX document) { int rows = Util.ListNullOrEmpty(reponses) ? 3 : 2 + reponses.Count; int columns = 6; var table = document.AddTable(rows, co

我正在使用XceedDocx库生成一个Word文档,其中包含许多具有以下格式的表

问题是库似乎在单元格的第一段之前插入了一个空格,呈现如下

下面是我用来生成表的代码

private Table InitTable(DocX document)
{
int rows = Util.ListNullOrEmpty(reponses) ? 3 : 2 + reponses.Count;
int columns = 6;

var table = document.AddTable(rows, columns);

table.Rows[0].MergeCells(4, 5);
table.Rows[0].Cells[0].Width = 34; // 12 mm
table.Rows[0].Cells[1].Width = 127.55; // 45 mm
table.Rows[0].Cells[2].Width = 104.88; // 37 mm
table.Rows[0].Cells[3].Width = 104.88; // 37 mm
table.Rows[0].Cells[4].Width = 104.88; // 37 mm

Border border = new Border(BorderStyle.Tcbs_thick, BorderSize.one, 10, System.Drawing.Color.Black);

List<string> enteteLigne1 = new List<string>
{
    "Column 1", "Column 2", "Column 3", "Column 4", "Column 5"
};

// Header : First row
for (int i = 0; i < columns -1; i++)
{
    SetCellBorder(table.Rows[0].Cells[i], border, 0b0000);
    FormatCellContent(table.Rows[0].Cells[i], enteteLigne1[i], "Arial", 10d, Alignment.center);
}

return table;
}

private void FormatCellContent(Cell cell, string content, string fontName, double fontSize, Alignment alignment)
{
var p = cell.Paragraphs.FirstOrDefault();
if (p == null)
{
    p = cell.InsertParagraph();
}

p.SpacingBefore(2.9); // 1 mm * 2.834645669 * 20 (OpenXML unit)
p.SpacingAfter(2.9);
p.Alignment = alignment;
p.Font(fontName);
p.FontSize(fontSize);
p.InsertText(content);

}
private表InitTable(DocX文档)
{
int rows=Util.ListNullOrEmpty(reponses)?3:2+reponses.Count;
int列=6;
var table=document.AddTable(行、列);
表.行[0].合并单元格(4,5);
table.Rows[0]。单元格[0]。宽度=34;//12 mm
table.Rows[0]。单元格[1]。宽度=127.55;//45 mm
table.行[0]。单元格[2]。宽度=104.88;//37 mm
table.行[0]。单元格[3]。宽度=104.88;//37 mm
table.行[0]。单元格[4]。宽度=104.88;//37 mm
Border Border=新边框(BorderStyle.Tcbs_thick,BorderSize.one,10,System.Drawing.Color.Black);
List enteteLigne1=新列表
{
“第1栏”、“第2栏”、“第3栏”、“第4栏”、“第5栏”
};
//标题:第一行
对于(int i=0;i
唯一的替代方法是将OpenXml代码插入到段落的Xml属性中,但这将非常繁琐,并且与使用库的目的背道而驰

我做错了什么

提前感谢

而不是

table.Rows[0]。单元格[0]。宽度=34

使用

表3.SetColumnWidth(0,34)


这将定义表的列宽

非常感谢,我将尝试一下
private Table InitTable(DocX document)
{
int rows = Util.ListNullOrEmpty(reponses) ? 3 : 2 + reponses.Count;
int columns = 6;

var table = document.AddTable(rows, columns);

table.Rows[0].MergeCells(4, 5);
table.Rows[0].Cells[0].Width = 34; // 12 mm
table.Rows[0].Cells[1].Width = 127.55; // 45 mm
table.Rows[0].Cells[2].Width = 104.88; // 37 mm
table.Rows[0].Cells[3].Width = 104.88; // 37 mm
table.Rows[0].Cells[4].Width = 104.88; // 37 mm

Border border = new Border(BorderStyle.Tcbs_thick, BorderSize.one, 10, System.Drawing.Color.Black);

List<string> enteteLigne1 = new List<string>
{
    "Column 1", "Column 2", "Column 3", "Column 4", "Column 5"
};

// Header : First row
for (int i = 0; i < columns -1; i++)
{
    SetCellBorder(table.Rows[0].Cells[i], border, 0b0000);
    FormatCellContent(table.Rows[0].Cells[i], enteteLigne1[i], "Arial", 10d, Alignment.center);
}

return table;
}

private void FormatCellContent(Cell cell, string content, string fontName, double fontSize, Alignment alignment)
{
var p = cell.Paragraphs.FirstOrDefault();
if (p == null)
{
    p = cell.InsertParagraph();
}

p.SpacingBefore(2.9); // 1 mm * 2.834645669 * 20 (OpenXML unit)
p.SpacingAfter(2.9);
p.Alignment = alignment;
p.Font(fontName);
p.FontSize(fontSize);
p.InsertText(content);

}