[FEATURE REQUEST] вставка текста из Word и Excell
Предложение для дизайнера отчетов, для вставки текста из Word и Excell.
для себя написал такой код, неплохо было бы встроить его в дизайнер.
var
i, j :integer;
mm, l, t :Double;
s :string;
sl :TStringList;
begin
mm := 3.77953;
sl := TStringList.Create;
with TClipBoard.Create do begin
sl.Add('#FR3 clipboard#');
sl.Add('');
t := 10;
for i := 0 to Memo1.Lines.Count - 1 do begin
l := 10;
for j := 1 to WordCount(Memo1.Lines, [#9]) do begin
s := ExtractWord(j, Memo1.Lines, [#9]);
s := ReplaceStr(s, '"', '');
s := ReplaceStr(s, '<', '<');
s := ReplaceStr(s, '>', '>');
sl.Add('<TfrxMemoView Name="MemoCol_' + IntToStr(i) + '_' + IntToStr(j) + '" ' +
'Left="' + FormatFloat('#####.#####', l) + '" ' +
'Top="' + FormatFloat('#####.#####', t) + '" ' +
'Width="' + FormatFloat('#####.#####', 10 * length(s) * mm / 4.0) + '" ' +
'Height="' + FormatFloat('#####.#####', 5 * mm) + '" ' +
'Frame.Typ="15" ' +
'Text="' + AnsiToUtf8(s) + '"/>');
l := l + 10 * length(s) * mm / 4.0;
end;
t := t + 5 * mm;
end;
AsText := sl.Text;
Free;
end;
sl.Free;
end;
для себя написал такой код, неплохо было бы встроить его в дизайнер.
var
i, j :integer;
mm, l, t :Double;
s :string;
sl :TStringList;
begin
mm := 3.77953;
sl := TStringList.Create;
with TClipBoard.Create do begin
sl.Add('#FR3 clipboard#');
sl.Add('');
t := 10;
for i := 0 to Memo1.Lines.Count - 1 do begin
l := 10;
for j := 1 to WordCount(Memo1.Lines, [#9]) do begin
s := ExtractWord(j, Memo1.Lines, [#9]);
s := ReplaceStr(s, '"', '');
s := ReplaceStr(s, '<', '<');
s := ReplaceStr(s, '>', '>');
sl.Add('<TfrxMemoView Name="MemoCol_' + IntToStr(i) + '_' + IntToStr(j) + '" ' +
'Left="' + FormatFloat('#####.#####', l) + '" ' +
'Top="' + FormatFloat('#####.#####', t) + '" ' +
'Width="' + FormatFloat('#####.#####', 10 * length(s) * mm / 4.0) + '" ' +
'Height="' + FormatFloat('#####.#####', 5 * mm) + '" ' +
'Frame.Typ="15" ' +
'Text="' + AnsiToUtf8(s) + '"/>');
l := l + 10 * length(s) * mm / 4.0;
end;
t := t + 5 * mm;
end;
AsText := sl.Text;
Free;
end;
sl.Free;
end;