Building custom solutions that extend, automate, and integrate Microsoft 365 apps.
can you help me how use this link https://learn.microsoft.com/en-us/dotnet/api/system.linq.enumerable.orderby?view=net-5.0 for my case?
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
i have word document with table that i use for storing items from sharepoint lists. i have to make ascends sorting of table per column that contains date value. my code is
using (WordprocessingDocument doc = WordprocessingDocument.Open(memStr5, true))
{
MainDocumentPart main = doc.MainDocumentPart;
Table TabelaEvidencijaPutnihNaloga = main.Document.Body.Descendants<Table>().First();
int brojredova = TabelaEvidencijaPutnihNaloga.Elements<TableRow>().Count();
TableRow Red = TabelaEvidencijaPutnihNaloga.Elements<TableRow>().Last();
// TableRow prazanred = new TableRow();
// IEnumerable<TableRow> rows = TabelaEvidencijaPutnihNaloga.Elements<TableRow>(); //svi redovi u tabeli
// TableCell cell = rows.Elements<TableCell>().ElementAt(2);
TableRow rowCopy = (TableRow)Red.CloneNode(true);
brojredova = brojredova - 1;
rowCopy.Descendants<TableCell>().ElementAt(0).RemoveAllChildren<Paragraph>();
rowCopy.Descendants<TableCell>().ElementAt(0).Append(new Paragraph(new Run(new RunFonts() { Ascii = "Times New Roman" }, new Text(Convert.ToString(brojredova)))));
rowCopy.Descendants<TableCell>().ElementAt(1).RemoveAllChildren<Paragraph>();
rowCopy.Descendants<TableCell>().ElementAt(1).Append(new Paragraph(new Run(new RunFonts() { Ascii = "Times New Roman" }, new Text(dn.ToString()))));
rowCopy.Descendants<TableCell>().ElementAt(2).RemoveAllChildren<Paragraph>();
rowCopy.Descendants<TableCell>().ElementAt(2).Append(new Paragraph(new Run(new RunFonts() { Ascii = "Times New Roman" }, new Text(imeiprezime.ToString()))));
rowCopy.Descendants<TableCell>().ElementAt(3).RemoveAllChildren<Paragraph>();
rowCopy.Descendants<TableCell>().ElementAt(3).Append(new Paragraph(new Run(new RunFonts() { Ascii = "Times New Roman" }, new Text(lokacija.ToString() + "," + brojdananaputu.ToString() + " дан"))));
rowCopy.Descendants<TableCell>().ElementAt(4).RemoveAllChildren<Paragraph>();
rowCopy.Descendants<TableCell>().ElementAt(4).Append(new Paragraph(new Run(new RunFonts() { Ascii = "Times New Roman" }, new Text(razlogputovanja.ToString()))));
rowCopy.Descendants<TableCell>().ElementAt(5).RemoveAllChildren<Paragraph>();
rowCopy.Descendants<TableCell>().ElementAt(5).Append(new Paragraph(new Run(new RunFonts() { Ascii = "Times New Roman" }, new Text(vozilo.ToString()))));
rowCopy.Descendants<TableCell>().ElementAt(9).RemoveAllChildren<Paragraph>();
rowCopy.Descendants<TableCell>().ElementAt(9).Append(new Paragraph(new Run(new RunFonts() { Ascii = "Times New Roman" }, new Text(napomena.ToString()))));
TabelaEvidencijaPutnihNaloga.AppendChild(rowCopy);
TabelaEvidencijaPutnihNaloga.OrderBy(s => s.Elements<TableCell>().ElementAt(1));
//closing WordprocessingDocument automatically saves the document
}
Building custom solutions that extend, automate, and integrate Microsoft 365 apps.
can you help me how use this link https://learn.microsoft.com/en-us/dotnet/api/system.linq.enumerable.orderby?view=net-5.0 for my case?
my error on insertbefore() 'Operation is not valid due to the current state of the object.'
also i tryed with next code
using (WordprocessingDocument doc = WordprocessingDocument.Open(memStr5, true))
{
MainDocumentPart main = doc.MainDocumentPart;
Table TabelaEvidencijaPutnihNaloga = main.Document.Body.Descendants<Table>().First();
int brojredova = TabelaEvidencijaPutnihNaloga.Elements<TableRow>().Count();
TableRow Red = TabelaEvidencijaPutnihNaloga.Elements<TableRow>().Last();
for (int i = 1; i <= brojredova; i++)
{
TableRow row = TabelaEvidencijaPutnihNaloga.Elements<TableRow>().ElementAt(i);
if (Convert.ToDateTime(dn) < Convert.ToDateTime(row.Descendants<TableCell>().ElementAt(1).InnerText))
{
TableRow rowCopy = (TableRow)row.CloneNode(true);
rowCopy.Descendants<TableCell>().ElementAt(0).RemoveAllChildren<Paragraph>();
rowCopy.Descendants<TableCell>().ElementAt(0).Append(new Paragraph(new Run(new RunFonts() { Ascii = "Times New Roman" }, new Text(Convert.ToString(brojredova)))));
rowCopy.Descendants<TableCell>().ElementAt(1).RemoveAllChildren<Paragraph>();
rowCopy.Descendants<TableCell>().ElementAt(1).Append(new Paragraph(new Run(new RunFonts() { Ascii = "Times New Roman" }, new Text(dn.ToString()))));
rowCopy.Descendants<TableCell>().ElementAt(2).RemoveAllChildren<Paragraph>();
rowCopy.Descendants<TableCell>().ElementAt(2).Append(new Paragraph(new Run(new RunFonts() { Ascii = "Times New Roman" }, new Text(imeiprezime.ToString()))));
rowCopy.Descendants<TableCell>().ElementAt(3).RemoveAllChildren<Paragraph>();
rowCopy.Descendants<TableCell>().ElementAt(3).Append(new Paragraph(new Run(new RunFonts() { Ascii = "Times New Roman" }, new Text(lokacija.ToString() + "," + brojdananaputu.ToString() + " дан"))));
rowCopy.Descendants<TableCell>().ElementAt(4).RemoveAllChildren<Paragraph>();
rowCopy.Descendants<TableCell>().ElementAt(4).Append(new Paragraph(new Run(new RunFonts() { Ascii = "Times New Roman" }, new Text(razlogputovanja.ToString()))));
rowCopy.Descendants<TableCell>().ElementAt(5).RemoveAllChildren<Paragraph>();
rowCopy.Descendants<TableCell>().ElementAt(5).Append(new Paragraph(new Run(new RunFonts() { Ascii = "Times New Roman" }, new Text(vozilo.ToString()))));
rowCopy.Descendants<TableCell>().ElementAt(9).RemoveAllChildren<Paragraph>();
rowCopy.Descendants<TableCell>().ElementAt(9).Append(new Paragraph(new Run(new RunFonts() { Ascii = "Times New Roman" }, new Text(napomena.ToString()))));
row.InsertBefore(rowCopy, row);
//TabelaEvidencijaPutnihNaloga.Append(tekucired);
}
}
if (Convert.ToDateTime(dn) >= Convert.ToDateTime(Red.Descendants<TableCell>().ElementAt(1).InnerText))
{
// TableRow prazanred = new TableRow();
// IEnumerable<TableRow> rows = TabelaEvidencijaPutnihNaloga.Elements<TableRow>(); //svi redovi u tabeli
// TableCell cell = rows.Elements<TableCell>().ElementAt(2);
TableRow rowCopy = (TableRow)Red.CloneNode(true);
brojredova = brojredova - 1;
rowCopy.Descendants<TableCell>().ElementAt(0).RemoveAllChildren<Paragraph>();
rowCopy.Descendants<TableCell>().ElementAt(0).Append(new Paragraph(new Run(new RunFonts() { Ascii = "Times New Roman" }, new Text(Convert.ToString(brojredova)))));
rowCopy.Descendants<TableCell>().ElementAt(1).RemoveAllChildren<Paragraph>();
rowCopy.Descendants<TableCell>().ElementAt(1).Append(new Paragraph(new Run(new RunFonts() { Ascii = "Times New Roman" }, new Text(dn.ToString()))));
rowCopy.Descendants<TableCell>().ElementAt(2).RemoveAllChildren<Paragraph>();
rowCopy.Descendants<TableCell>().ElementAt(2).Append(new Paragraph(new Run(new RunFonts() { Ascii = "Times New Roman" }, new Text(imeiprezime.ToString()))));
rowCopy.Descendants<TableCell>().ElementAt(3).RemoveAllChildren<Paragraph>();
rowCopy.Descendants<TableCell>().ElementAt(3).Append(new Paragraph(new Run(new RunFonts() { Ascii = "Times New Roman" }, new Text(lokacija.ToString() + "," + brojdananaputu.ToString() + " дан"))));
rowCopy.Descendants<TableCell>().ElementAt(4).RemoveAllChildren<Paragraph>();
rowCopy.Descendants<TableCell>().ElementAt(4).Append(new Paragraph(new Run(new RunFonts() { Ascii = "Times New Roman" }, new Text(razlogputovanja.ToString()))));
rowCopy.Descendants<TableCell>().ElementAt(5).RemoveAllChildren<Paragraph>();
rowCopy.Descendants<TableCell>().ElementAt(5).Append(new Paragraph(new Run(new RunFonts() { Ascii = "Times New Roman" }, new Text(vozilo.ToString()))));
rowCopy.Descendants<TableCell>().ElementAt(9).RemoveAllChildren<Paragraph>();
rowCopy.Descendants<TableCell>().ElementAt(9).Append(new Paragraph(new Run(new RunFonts() { Ascii = "Times New Roman" }, new Text(napomena.ToString()))));
TabelaEvidencijaPutnihNaloga.AppendChild(rowCopy);
// Remove the empty placeholder row from the table.
// TabelaZapisnik.RemoveChild(Red);
}
//closing WordprocessingDocument automatically saves the document
but i receive error on row.InsertBefore(rowCopy, row);. how resolve this problem?