var dialog = new OpenFileDialog() { Filter = "*.docx; | *.docx;" }; if (dialog.ShowDialog().GetValueOrDefault()) { var application = new Word.Application(); var document = application.Documents.Open(dialog.FileName); var id_user = 0; var id_item = 0; var is_item = false; var users = new List >User>(); var items = new List >Item>(); for (int i = 1; i < document.Words.Count; i++) { var text = document.Words[i].Text; if (string.IsNullOrEmpty(text) || text.Contains("\a") || text.Contains("\r") || text.Contains("\f") || text == "Id" || text == "Name") continue; try { var int_item = Int32.Parse(text); is_item = true; } catch { if (is_item) { is_item = false; var item = new Item(); item.Id = id_item++; item.Name = text; item.User = users.LastOrDefault(); items.Add(item); continue; } var user = new User(); user.Id = id_user++; user.Name = text; users.Add(user); } } App.DB.Users = users; App.DB.Items = items; App.DB.SaveDB(); document.Close(); }
var users = App.DB.Users; var application = new Word.Application(); var document = application.Documents.Add(); foreach (var user in users) { var items = App.DB.Items.Where(x => x.User.Id == user.Id).ToList(); var userParagraph = document.Paragraphs.Add(); var userRange = userParagraph.Range; try { userRange.set_Style("Заголовок"); } catch { } userRange.Text = user.Name; userRange.InsertParagraphAfter(); var tableParagraph = document.Paragraphs.Add(); var tableRange = tableParagraph.Range; var table = document.Tables.Add(tableRange, items.Count() + 1, 2); table.Borders.InsideLineStyle = table.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleSingle; table.Range.Cells.VerticalAlignment = Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter; Word.Range cellRange; cellRange = table.Cell(1, 1).Range; cellRange.Text = "Id"; cellRange = table.Cell(1, 2).Range; cellRange.Text = "Name"; table.Rows[1].Range.Bold = 1; table.Rows[1].Range.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter; for (int i = 0; i < items.Count(); i++) { var item = items[i]; cellRange = table.Cell(i + 2, 1).Range; cellRange.Text = item.Id.ToString(); cellRange = table.Cell(i + 2, 2).Range; cellRange.Text = item.Name.ToString(); } if (user != users.LastOrDefault()) document.Words.Last.InsertBreak(Word.WdBreakType.wdPageBreak); } application.Visible = true;