瀏覽代碼

Table.removeRow(int index) has been fixed.

Added the method Row.Remove() its easier than calling Table.removeRow(int index)
master
coffeycathal_cp 14 年之前
父節點
當前提交
689f778abf
共有 3 個檔案被更改,包括 29 行新增17 行删除
  1. 13
    13
      DocX/DocX.cs
  2. 2
    2
      DocX/Paragraph.cs
  3. 14
    2
      DocX/Table.cs

+ 13
- 13
DocX/DocX.cs 查看文件

from e in mainDoc.Descendants(XName.Get("body", DocX.w.NamespaceName)).Descendants() from e in mainDoc.Descendants(XName.Get("body", DocX.w.NamespaceName)).Descendants()
where (e.Name.LocalName == reference) && (e.Attribute(w + "type").Value == type) where (e.Name.LocalName == reference) && (e.Attribute(w + "type").Value == type)
select e.Attribute(r + "id").Value select e.Attribute(r + "id").Value
).FirstOrDefault();
).LastOrDefault();
if (Id != null) if (Id != null)
{ {
{ {
var evenHeaderRef = var evenHeaderRef =
( (
from e in sectPr.Elements(w + "headerReference")
from e in mainDoc.Descendants(w + "headerReference")
let type = e.Attribute(w + "type") let type = e.Attribute(w + "type")
where type != null && type.Value.Equals("even", StringComparison.CurrentCultureIgnoreCase) where type != null && type.Value.Equals("even", StringComparison.CurrentCultureIgnoreCase)
select e.Attribute(r + "id").Value select e.Attribute(r + "id").Value
).SingleOrDefault();
).LastOrDefault();
if (evenHeaderRef != null) if (evenHeaderRef != null)
{ {
var oddHeaderRef = var oddHeaderRef =
( (
from e in sectPr.Elements(w + "headerReference")
from e in mainDoc.Descendants(w + "headerReference")
let type = e.Attribute(w + "type") let type = e.Attribute(w + "type")
where type != null && type.Value.Equals("default", StringComparison.CurrentCultureIgnoreCase) where type != null && type.Value.Equals("default", StringComparison.CurrentCultureIgnoreCase)
select e.Attribute(r + "id").Value select e.Attribute(r + "id").Value
).SingleOrDefault();
).LastOrDefault();
if (oddHeaderRef != null) if (oddHeaderRef != null)
{ {
var firstHeaderRef = var firstHeaderRef =
( (
from e in sectPr.Elements(w + "headerReference")
from e in mainDoc.Descendants(w + "headerReference")
let type = e.Attribute(w + "type") let type = e.Attribute(w + "type")
where type != null && type.Value.Equals("first", StringComparison.CurrentCultureIgnoreCase) where type != null && type.Value.Equals("first", StringComparison.CurrentCultureIgnoreCase)
select e.Attribute(r + "id").Value select e.Attribute(r + "id").Value
).SingleOrDefault();
).LastOrDefault();
if (firstHeaderRef != null) if (firstHeaderRef != null)
{ {
var oddFooterRef = var oddFooterRef =
( (
from e in sectPr.Elements(w + "footerReference")
from e in mainDoc.Descendants(w + "footerReference")
let type = e.Attribute(w + "type") let type = e.Attribute(w + "type")
where type != null && type.Value.Equals("default", StringComparison.CurrentCultureIgnoreCase) where type != null && type.Value.Equals("default", StringComparison.CurrentCultureIgnoreCase)
select e.Attribute(r + "id").Value select e.Attribute(r + "id").Value
).SingleOrDefault();
).LastOrDefault();
if (oddFooterRef != null) if (oddFooterRef != null)
{ {
var evenFooterRef = var evenFooterRef =
( (
from e in sectPr.Elements(w + "footerReference")
from e in mainDoc.Descendants(w + "footerReference")
let type = e.Attribute(w + "type") let type = e.Attribute(w + "type")
where type != null && type.Value.Equals("even", StringComparison.CurrentCultureIgnoreCase) where type != null && type.Value.Equals("even", StringComparison.CurrentCultureIgnoreCase)
select e.Attribute(r + "id").Value select e.Attribute(r + "id").Value
).SingleOrDefault();
).LastOrDefault();
if (evenFooterRef != null) if (evenFooterRef != null)
{ {
var firstFooterRef = var firstFooterRef =
( (
from e in sectPr.Elements(w + "footerReference")
from e in mainDoc.Descendants(w + "footerReference")
let type = e.Attribute(w + "type") let type = e.Attribute(w + "type")
where type != null && type.Value.Equals("first", StringComparison.CurrentCultureIgnoreCase) where type != null && type.Value.Equals("first", StringComparison.CurrentCultureIgnoreCase)
select e.Attribute(r + "id").Value select e.Attribute(r + "id").Value
).SingleOrDefault();
).LastOrDefault();
if (firstFooterRef != null) if (firstFooterRef != null)
{ {

+ 2
- 2
DocX/Paragraph.cs 查看文件

else else
{ {
if (Xml.Parent.Name.LocalName == "tc")
// If this is the only Paragraph in the Cell then we cannot remove it.
if (Xml.Parent.Name.LocalName == "tc" && Xml.Parent.Elements(XName.Get("p", DocX.w.NamespaceName)).Count() == 1)
Xml.Value = string.Empty; Xml.Value = string.Empty;
else else
// If the formatting matches, do the replace. // If the formatting matches, do the replace.
if(formattingMatch) if(formattingMatch)
{ {
var temp = Xml;
InsertText(m.Index + oldValue.Length, newValue, trackChanges, newFormatting); InsertText(m.Index + oldValue.Length, newValue, trackChanges, newFormatting);
RemoveText(m.Index, m.Length, trackChanges); RemoveText(m.Index, m.Length, trackChanges);
} }

+ 14
- 2
DocX/Table.cs 查看文件

/// </example> /// </example>
public void RemoveRow(int index) public void RemoveRow(int index)
{ {
if (index < 0 || index > rows.Count)
if (index < 0 || index > Rows.Count)
throw new IndexOutOfRangeException(); throw new IndexOutOfRangeException();
rows[index].Xml.Remove();
Rows[index].Xml.Remove();
if (Rows.Count == 0)
Remove();
} }
/// <summary> /// <summary>
} }
} }
public void Remove()
{
XElement table = Xml.Parent;
Xml.Remove();
if (table.Elements(XName.Get("tr", DocX.w.NamespaceName)).Count() == 0)
table.Remove();
}
public override List<Paragraph> Paragraphs public override List<Paragraph> Paragraphs
{ {
get get

Loading…
取消
儲存