![]() |
![]() ![]() ![]() ![]() |
|
Как экспортировать таблицу из MS Word в TStringGridDelphi , Технологии , OLE Automation MSOfficeАвтор: 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 прямо в свой смартфон. Подпишитесь на наш :: Главная :: OLE Automation MSOffice ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||