我正在开发一个连接到 SQL 数据库、取回数据集并在网格中显示该数据的工具。用户必须能够选择一个单元格块(只是矩形)并按CTRL+C将其复制到剪贴板。
我该怎么做呢:
以可以粘贴到 Excel 中的格式?我希望已经为此做好了准备。它不需要 Excel 等所有剪贴板功能,只需突出显示一组矩形单元格并将其复制到剪贴板即可。
如果可以在其中完成,
TStringGrid
我希望将我的功能保留在其中,但也可以与支持此功能的组件一起使用。
我正在开发一个连接到 SQL 数据库、取回数据集并在网格中显示该数据的工具。用户必须能够选择一个单元格块(只是矩形)并按CTRL+C将其复制到剪贴板。
我该怎么做呢:
以可以粘贴到 Excel 中的格式?我希望已经为此做好了准备。它不需要 Excel 等所有剪贴板功能,只需突出显示一组矩形单元格并将其复制到剪贴板即可。
如果可以在其中完成,TStringGrid
我希望将我的功能保留在其中,但也可以与支持此功能的组件一起使用。
您可以尝试将单元格值复制为TAB delimited text
,类似于以下代码:
procedure TForm1.Button1Click(Sender: TObject);
var
S: string;
X, Y: Integer;
begin
S := '';
for Y := StringGrid1.Selection.Top to StringGrid1.Selection.Bottom do
begin
for X := StringGrid1.Selection.Left to StringGrid1.Selection.Right - 1 do
S := S + StringGrid1.Cells[X, Y] + #9;
S := S + StringGrid1.Cells[StringGrid1.Selection.Right, Y] + sLineBreak;
end;
Delete(S, Length(S) - Length(sLineBreak) + 1, Length(sLineBreak));
Clipboard.AsText := S;
end;