private void Word_Click(object sender, EventArgs e) { if (FolderBrowserDialog.ShowDialog() == DialogResult.OK) { try { string filepath = generalUtils.OutputFileName(FolderBrowserDialog.SelectedPath, "docx"); using (WordprocessingDocument doc = WordprocessingDocument.Create(filepath, WordprocessingDocumentType.Document)) { MainDocumentPart mainPart = doc.AddMainDocumentPart(); mainPart.Document = new Document(); Body body = mainPart.Document.AppendChild(new Body()); wordUtils.AddStyle(mainPart, true, true, true, false, "MyHeading1", "Title", "Serif", 16, "0000FF"); wordUtils.AddStyle(mainPart, true, false, false, false, "MyHeading2", "Subtitle", "Serif", 14, "0000FF"); wordUtils.AddStyle(mainPart, false, false, false, false, "MyStartParagraph", "First", "Calibri", 15, "000000"); wordUtils.AddStyle(mainPart, false, false, false, false, "MyParagraph2", "Second", "Calibri", 12, "000000"); AddParagraph(body, "MyHeading1", "Autosalone - VEICOLI NUOVI E USATI", JustificationValues.Center); AddParagraph(body, "MyHeading2", "Offerte ogni giorno!", JustificationValues.Center); AddParagraph(body, "MyStartParagraph", "Lista dei veicoli disponibili:"); wordUtils.CreateBulletNumberingPart(mainPart, "•"); for (int i = 0; i < ListaVeicoli.Count; i++) { AddParagraph(body, "MyParagraph2", $"{ListaVeicoli[i].Marca} {ListaVeicoli[i].Modello}"); string usato = ListaVeicoli[i].Usato ? "Si" : "No"; string km0 = ListaVeicoli[i].Km0 ? "Si" : "No"; string[] elements = { $"Colore: {ListaVeicoli[i].Colore}", $"Cilindrata: {ListaVeicoli[i].Cilindrata}", $"Potenza: {ListaVeicoli[i].Potenza} Kw", $"matricolazione: {ListaVeicoli[i].Matricolazione.ToShortDateString()}", $"Usato: {usato}", $"Km0: {km0}", $"Km Percorsi: {ListaVeicoli[i].KmFatti}", $"Prezzo: {ListaVeicoli[i].Prezzo} €" }; List <Paragraph> bulletList = new List <Paragraph>(); wordUtils.CreateBulletOrNumberedList(100, 200, bulletList, elements); foreach (Paragraph paragraph in bulletList) { body.Append(paragraph); } } ProcedureCompleted("Il documento è pronto!", filepath); } } catch (Exception) { MessageBox.Show("Problemi con il documento. Se è aperto da un altro programma, chiudilo e riprova..."); } } }
private void btnSimpleWordTest_Click(object sender, EventArgs e) { try { string filepath = "test.docx"; string msg = "Hello World!"; using (WordprocessingDocument doc = WordprocessingDocument.Create(filepath, DocumentFormat.OpenXml.WordprocessingDocumentType.Document)) { // Add a main document part. MainDocumentPart mainPart = doc.AddMainDocumentPart(); // Create the document structure and add some text. mainPart.Document = new Document(); Body body = mainPart.Document.AppendChild(new Body()); // Define the styles Word.AddStyle(mainPart, "MyHeading1", "Titolone", "Verdana", 30, "0000FF", false, true, true); Word.AddStyle(mainPart, "MyTypescript", "Macchina da scrivere", "Courier New", 10, "333333", true, false, false); // Add MyHeading1 styled text Paragraph headingPar = Word.CreateParagraphWithStyle("MyHeading1", JustificationValues.Center); Word.AddTextToParagraph(headingPar, "Titolo con stile applicato"); body.AppendChild(headingPar); // Add simple text Paragraph para = body.AppendChild(new Paragraph()); Run run = para.AppendChild(new Run()); // String msg contains the text, "Hello, Word!" run.AppendChild(new Text(msg)); // Add MyTypescript styled text Paragraph typescriptParagraph = Word.CreateParagraphWithStyle("MyTypescript", JustificationValues.Left); Word.AddTextToParagraph(typescriptParagraph, "È universalmente riconosciuto che un lettore che osserva il layout di una pagina viene distratto dal contenuto testuale se questo è leggibile. Lo scopo dell’utilizzo del Lorem Ipsum è che offre una normale distribuzione delle lettere (al contrario di quanto avviene se si utilizzano brevi frasi ripetute, ad esempio “testo qui”), apparendo come un normale blocco di testo leggibile. Molti software di impaginazione e di web design utilizzano Lorem Ipsum come testo modello. Molte versioni del testo sono state prodotte negli anni, a volte casualmente, a volte di proposito (ad esempio inserendo passaggi ironici)."); body.AppendChild(typescriptParagraph); // Append a paragraph with styles Paragraph newPar = createParagraphWithStyles(); body.AppendChild(newPar); // Append a table string[][] c = new string[4][]; for (int i = 0; i < c.Length; i++) { c[i] = new string[5]; for (int j = 0; j < c[i].Length; j++) { c[i][j] = i + "-" + j; } } body.Append(Word.CreateTable(c, Word.GetTableProperties("#000000", BorderValues.Thick, "5000"))); // Append bullet list string[] texts = { "First element", "Second Element", "Third Element" }; Word.CreateBulletNumberingPart(mainPart); List <Paragraph> bulletList = new List <Paragraph>(); Word.CreateBulletOrNumberedList(100, 200, bulletList, texts.Length, texts); foreach (Paragraph paragraph in bulletList) { body.Append(paragraph); } // Append numbered list List <Paragraph> numberedList = new List <Paragraph>(); Word.CreateBulletOrNumberedList(100, 240, numberedList, texts.Length, texts, false); foreach (Paragraph paragraph in numberedList) { body.Append(paragraph); } // Append image Word.InsertPicture(doc, "panorama.jpg"); } MessageBox.Show("Il documento è pronto!"); Process.Start(filepath); } catch (Exception ex) { MessageBox.Show("Problemi col documento. Se è aperto da un altro programma, chiudilo e riprova... \n" + ex.Message); } }