Upgrade to Pro — share decks privately, control downloads, hide ads and more …

C#+Word

ТиМПИ
February 18, 2021
61

 C#+Word

ТиМПИ

February 18, 2021
Tweet

More Decks by ТиМПИ

Transcript

  1. Автоматизация работы с офисными документами А. Л. Тулупьев, д. ф.-м.

    н., проф., [email protected] Т. В. Тулупьева, к. психол. н., доц. [email protected] М. В. Абрамов, к. т. н, [email protected] А. О. Хлобыстова, [email protected]
  2. 5/14 Начало работы с Word using Word = Microsoft.Office.Interop.Word; //Создаем

    объект Word - равносильно запуску Word Word.Application wordapp = new Word.Application(); // Путь до документа string source = @"D:\\Test.docx"; // Открываем doc = wordapp.Documents.Open(source); doc.Activate(); //Удаляем из него всё наполнение object oMissing = System.Reflection.Missing.Value; doc.Range(ref oMissing, ref oMissing).Delete(ref oMissing, ref oMissing); // Закрываем документ doc.Save(); doc.Close(); doc = null; wordapp.Quit();
  3. 6/14 Работа с параграфами /*Получаем ссылки на параграфы документа. */

    Word.Paragraphs wordparagraphs; Word.Paragraph wordparagraph; wordparagraphs = doc.Paragraphs; wordparagraph = (Word.Paragraph)wordparagraphs[1]; //Задание форматирования wordparagraph.Range.Font.Color = Word.WdColor.wdColorDarkBlue; wordparagraph.Range.Font.Size = 20; wordparagraph.Range.Font.Name = "Arial"; wordparagraph.Range.Font.Bold = 1; wordparagraph.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter; //Вставка текста wordparagraph.Range.Text = "Очень интересное название отчёта"; wordparagraph.Range.Text = "ФИО"; doc.Paragraphs.Add(ref oMissing); wordparagraph.Range.Text = DateTime.Now.ToShortDateString();
  4. 7/14 Вставка таблиц //Сдвигаемся вниз в конец документа object unit;

    object extend; unit = Word.WdUnits.wdStory; extend = Word.WdMovementType.wdMove; wordapp.Selection.EndKey(ref unit, ref extend); //место, куда нужно вставить таблицу Word.Range wordrange = wordapp.Selection.Range; Word.Table table1 = doc.Tables.Add(wordrange, m_rows, n_columns, true, true); //Заполним ячейки информацией Word.Range wordcellrange; for (int i = 1; i <= n_columns; i++) (table1.Cell(1, i).Range).Text = (n_columns - i).ToString(); for (int i = 1; i < m_rows; i++) (table1.Cell(i + 1, 1).Range).Text = (i).ToString();
  5. 8/14 Вставка рисунков string pic = @"D:\\Test.jpeg"; oMissing = System.Reflection.Missing.Value;

    doc.Paragraphs.Add(ref oMissing); object range = wordparagraph.Range; wordapp.Selection.InlineShapes.AddPicture(pic, ref oMissing, ref oMissing, ref range);
  6. 9/14 Начало работы с Excel using Excel = Microsoft.Office.Interop.Excel; //Создаем

    объект Excel Excel.Application excelapp = new Excel.Application(); // Путь до документа string source = @"D:\\Test.xlsx"; //Открываем книгу и получаем на нее ссылку Excel.Workbook excelappworkbook = excelapp.Workbooks.Open(source2); //Получаем массив ссылок на листы выбранной книги Excel.Sheets excelsheets = excelappworkbook.Worksheets; // Закрываем документ excelappworkbook.Save(); excelappworkbook.Close(); excelappworkbook=null; excelapp.Quit();
  7. 10/14 Заполнение ячеек //Получаем ссылку на лист 1 excelworksheet =

    (Excel.Worksheet)excelsheets.get_Item(1); for (int m = 1; m <= 10; m++) { excelcells = excelworksheet.Cells[1, m]; excelcells.Value2 = m; excelcells = excelworksheet.Cells[m, 1]; excelcells.Value2 = 10-m; } Excel.Worksheet excelworksheet; Excel.Range excelcells;
  8. 11/14 Знакомство с Access // Запускаем новый экземпляр Access for

    Automation: Access.Application oAccess = null; oAccess = new Access.ApplicationClass(); //Открываем базу данных oAccess.OpenCurrentDatabase( “d:\\test.mdb", true); // Предварительный просмотр oAccess.DoCmd.OpenReport( "February", Access.AcView.acViewPreview, //Режим System.Reflection.Missing.Value, System.Reflection.Missing.Value ); // SELECT oAccess.DoCmd.SelectObject( Access.AcObjectType.acReport, //Тип объекта "Employees", //Имя объекта true //В окне БД );
  9. 13/14 Полезные ссылки • Word https://docs.microsoft.com/ru-ru/previous-versions/office/troubleshoot/office- developer/automate-word-create-file-using-visual-c • Excel https://docs.microsoft.com/ru-ru/previous-versions/office/troubleshoot/office-

    developer/automate-excel-using-visual-c-fill-data • Access https://docs.microsoft.com/ru-ru/previous-versions/office/troubleshoot/office- developer/automate-access-using-visual-c
  10. Автоматизация работы с офисными документами А. Л. Тулупьев, д. ф.-м.

    н., проф., [email protected] Т. В. Тулупьева, к. психол. н., доц. [email protected] М. В. Абрамов, к. т. н, [email protected] А. О. Хлобыстова, [email protected]