public void DeleteAndShiftCellsLeft(int rowIndex, int celIndex)
{
var trPr = Rows[rowIndex].Xml.Element(XName.Get("trPr", DocX.w.NamespaceName));
if (trPr != null)
{
var gridAfter = trPr.Element(XName.Get("gridAfter", DocX.w.NamespaceName));
if (gridAfter != null)
{
var val = gridAfter.Attribute(XName.Get("val", DocX.w.NamespaceName));
val.Value = (int.Parse(val.Value) + 1).ToString();
}
else
{
gridAfter.SetAttributeValue("val", 1);
}
}
else
{
XElement trPrXElement = new XElement(XName.Get("trPr", DocX.w.NamespaceName));
XElement gridAfterElement = new XElement(XName.Get("gridAfter", DocX.w.NamespaceName));
XAttribute gridAfterValAttribute = new XAttribute(XName.Get("val", DocX.w.NamespaceName), 1);
gridAfterElement.Add(gridAfterValAttribute);
trPrXElement.Add(gridAfterElement);
Rows[rowIndex].Xml.AddFirst(trPrXElement);
}
var columnCount = this.ColumnCount;
if (celIndex <= this.ColumnCount && this.Rows[rowIndex].ColumnCount <= this.ColumnCount)
{
Rows[rowIndex].Cells[celIndex].Xml.Remove();
}
}