Как экспортировать таблицу из MS Word в TStringGridDelphi , Технологии , OLE Automation MSOfficeКак экспортировать таблицу из MS Word в TStringGridАвтор: http://www.swissdelphicenter.ch
uses ComObj; procedure TForm1.Button1Click(Sender: TObject); const AWordDoc = 'C:\xyz\testTable.doc'; var MSWord, Table: OLEVariant; iRows, iCols, iGridRows, jGridCols, iNumTables, iTableChosen: Integer; CellText: string; InputString: string; begin try MSWord := CreateOleObject('Word.Application'); except // Error.... Exit; end; try MSWord.Visible := False; MSWord.Documents.Open(AWordDoc); // Get number of tables in document iNumTables := MSWord.ActiveDocument.Tables.Count; InputString := InputBox(IntToStr(iNumTables) + ' Tables in Word Document', 'Please Enter Table Number', '1'); // Todo: Validate string for integer, range... iTableChosen := StrToInt(InputString); // access table Table := MSWord.ActiveDocument.Tables.Item(iTableChosen); // get dimensions of table iCols := Table.Rows.Count; iRows := Table.Columns.Count; // adjust stringgrid columns StringGrid1.RowCount := iCols; StringGrid1.ColCount := iRows + 1; // loop through cells for iGridRows := 1 to iRows do for jGridCols := 1 to iCols do begin CellText := Table.Cell(jGridCols, iGridRows).Range.FormattedText; if not VarisEmpty(CellText) then begin // Remove Tabs CellText := StringReplace(CellText, #0$D,'', [rfReplaceAll]); // Remove linebreaks CellText := StringReplace(CellText, #0$7,'', [rfReplaceAll]); // fill Stringgrid Stringgrid1.Cells[iGridRows, jGridCols] := CellText; end; end; //.. finally MSWord.Quit; end; end; Перевод контента на русский язык: Код предназначен для экспорта таблицы из файле Microsoft Word (.doc) в компонент TStringGrid в Delphi. Вот как он работает:
Вот некоторые улучшения, которые вы можете сделать:
Вот альтернативное решение с использованием unit ole2string, которое предоставляет более эффективный способ конвертирования документов Office в строки:
Этот код короче и более эффективен, чем оригинальный код. Он использует unit ole2string для конвертации таблицы в строку, которая затем может быть разделена на строки и столбцы с помощью функции StringReplace. Результатом является заполнение компонентом TStringGrid ячейками текста. Представлен пример кода на Delphi, который экспортирует таблицу из файла Microsoft Word в компонент TStringGrid. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: OLE Automation MSOffice ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |