• 主页
  • 招聘
  • 语言基础/算法/系统设计
  • 数据库相关
  • 图形处理/多媒体
  • 网络通信/分布式开发
  • VCL组件开发及应用
  • Windows SDK/API

急!!!有谁用过Spreadsheet吗!!怎样进行单元格的读取和赋值呢?烦请高手指点!!进者有分!

tangss 2005-03-16 09:15:10
有谁用过Spreadsheet吗!!怎样进行单元格的读取和赋值呢?
...全文
308 点赞 收藏 34
写回复
34 条回复
axin1102 2005年07月15日
while not ADataSet.Eof do
begin
with ssbSample.ActiveSheet.GetCellObject(
ADataSet.FieldByName('列').AsInteger,
ADataSet.FieldByName('行').AsInteger) do
begin
Text := '赋值';
end;
ADataSet.Next;
end;
回复 点赞
wangbao20001766 2005年04月21日
up
回复 点赞
Comer 2005年04月21日
帮顶
回复 点赞
tangss 2005年04月12日
有人知道吗?
回复 点赞
XuDunYu 2005年04月09日
var
Sheet: WorkSheet;
begin
sheet := Spreadsheet1.ActiveSheet;
Sheet.Rows.Clear;
Sheet.Rows.ClearFormats;
Sheet.Range['A1','A1'].Value := '测试时钟';
Sheet.Range['B1','B1'].Value := '间隔';
Sheet.Range['C1','C1'].Value := '抄表起始时钟';
Sheet.Range['D1','D1'].Value := '显示起始时钟';
Sheet.Range['E1','E1'].Value := '抄表结束时钟';
Sheet.Range['F1','F1'].Value := '显示结束时钟';
Sheet.Range['G1','G1'].Value := '测试结果';
Sheet.Range['A1','G1'].Font.Set_Name('宋体');
Sheet.Range['A1','G1'].Font.Set_Bold(True);
Sheet.Range['A1','G1'].Font.Set_Size(10);
Sheet.Range['A1','A1'].Set_ColumnWidth(140);
Sheet.Range['B1','B1'].Set_ColumnWidth(30);
Sheet.Range['C1','C1'].Set_ColumnWidth(140);
Sheet.Range['D1','D1'].Set_ColumnWidth(140);
Sheet.Range['E1','E1'].Set_ColumnWidth(140);
Sheet.Range['F1','F1'].Set_ColumnWidth(140);
Sheet.Range['G1','G1'].Set_ColumnWidth(70);
Sheet.Rows.Set_VAlignment(2);
Sheet.Rows.Set_HAlignment(2);
Sheet.Rows.Set_NumberFormat('YYYY-MM-DD HH:MM:SS');
end

回复 点赞
real_name 2005年04月07日
没用过,帮你顶
回复 点赞
sysbasic 2005年04月07日
倒...

with Spreadsheet1.ActiveSheet.GetCellObject(iCol, ARow) do
begin
Text := adsReportData.FieldByName('SFORMULA').AsString;
Free;
end;
回复 点赞
Heyongfeng 2005年04月07日
没用过,帮顶
回复 点赞
tkdyzc 2005年04月07日
大兄弟作队日外包吧
Spreadsheet1.Cells(1, 1): = '第1行,第1列;
Edit1.Text: = Spreadsheet1.Cells(i, j);
回复 点赞
xiaoyaozgc 2005年04月04日
帮你顶
回复 点赞
tangss 2005年04月04日
Help!!
回复 点赞
tangss 2005年04月04日
没有人知道吗?
回复 点赞
lyguo 2005年03月29日
没有用过
回复 点赞
hc0007 2005年03月29日
with fmddcldata.ls_table do
for i:=2 to grid.RowCount do begin
Insert;
fields[1].AsString:=local_userid;
if flag='T' then
for j:=2 to grid.ColCount-1 do begin
if trim(grid.Cells[2,i])='' then begin
cancel;
exit;
end;
fields[j].AsString:=trim(grid.Cells[j,i]);
end;
if flag='F' then begin
if trim(grid.Cells[2,i])='' then begin
cancel;
exit;
end;
fields[2].AsString:=trim(grid.Cells[2,i]);
fields[3].AsString:=trim(grid.Cells[3,i]);
fields[4].AsString:=trim(grid.Cells[4,i]);
fields[5].AsString:=trim(grid.Cells[5,i]);
fields[6].AsString:=trim(grid.Cells[6,i]);
fields[7].AsString:='';
for j:=7 to grid.ColCount-1 do begin
fields[j+1].AsString:=trim(grid.Cells[j,i]);
end;
end;
post;
end;
stat2.Panels[2].Text:='记录数:'+inttostr(fmddcldata.ls_table.RecordCount);
application.MessageBox('恭喜您!数据处理完毕!','提示',0);
end;
回复 点赞
hc0007 2005年03月29日
procedure Tfmddcl.ll_xddClick(Sender: TObject);
var
i, j, k: Integer;
sheet: TSpreadSheet;
Value: Variant;

begin
if not xdd_dialog.Execute then exit;
ll_yddd.Text:=xdd_dialog.FileName;

for i := PageControl2.PageCount-1 downto 0 do
PageControl2.Pages[i].Free;

with TMSExcel.Create(Self) do
try
LoadFromFile(ll_yddd.Text);

for k := 0 to Sheets.Count-1 do
begin
sheet := Sheets.SpreadSheet(k);
if Assigned(sheet) then
begin
{create a tab and grid for each sheet in workbook}
tab := TTabSheet.Create(PageControl2);
tab.Caption := sheet.Caption;
tab.PageControl := PageControl2;

grid := TStringGrid.Create(tab);
grid.DefaultRowHeight := 21;
grid.Options := [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goColSizing];
grid.Parent := tab;
grid.Align := alClient;

grid.RowCount := sheet.Cells.UsedRowCount+1;
grid.ColCount := sheet.Cells.UsedColCount+1;

for i := 1 to sheet.Cells.UsedRowCount+1 do
begin
for j := 1 to sheet.Cells.UsedColCount+1 do
begin
Value := sheet.Cells.GetValue(j-1, i-1);
{ if j= 4 then
begin
begin
grid.Cells[j, i]:=FormatDateTime('yyyy-mm-dd', StrToDate(Value));
end
end;
}
if (VarType(Value) = varBoolean) then
begin
if Value then
grid.Cells[j, i] := 'True'
else
grid.Cells[j, i] := 'False'
end
// else if TryStrToDate(Value,'yyyy-mm-dd') then
// grid.Cells[j, i] :=DateToStr(try TryStrToDate(Value,'yyyy-mm-dd'))
else
grid.Cells[j, i] := VarToStr(Value);
end;
end;

for i := 1 to grid.RowCount-1 do
grid.Cells[0, i] := IntToStr(i);
for j := 1 to grid.ColCount-1 do
grid.Cells[j, 0] := Chr(Ord('A') + j - 1);
end;
end;
finally
Free
end;
end;
回复 点赞
tangss 2005年03月29日
我想和VB中这样:

Spreadsheet1.Cells(1, 1) = "第1行,第1列"
Text1.Text = Spreadsheet1.Cells(i, j)

但是在Delphi不知怎样用!
烦请高手指点!!
回复 点赞
aiirii 2005年03月29日
http://hubdog.csdn.net/Hubdog/oweb.htm

(3) 基于电子表格(Spreadsheet)数据的图表

在下面这个例子中,我们将创建一个基于OWC Spreadsheet控件数据的图表,当我们修改了电子表格中的数据后,变动会自动反映在电子表格中,先声明变量:

var

Sheet : WorkSheet; // 电子表格

Chart : WCChart; // 图表

用数据填充电子表格

Sheet := Spreadsheet1.ActiveSheet;

with Sheet do begin

Range['A1', 'A10'].Set_Formula('=Row()');

Range['B1', 'B10'].Set_Formula('=A1^2');

Range['A12','A12'].Set_Formula('=Max(A1:A10)');

Range['B12','B12'].Set_Formula('=Max(B1:B10)');

end;

在上面的代码中,我们把行号(从1到10)插到列A中,把行号的平方插到列B中。单元格A12和 B12 设为列A和列B的最大值。正如我们看到的,Spreadsheet控件支持Excel那样的公式表达,它和Excel拥有同样的二进制内核。这项特性使得我们可以利用Spreadsheet控件执行某些无须显示结果于在屏幕上的后台计算。
回复 点赞
mqjshanghai 2005年03月29日
帮你顶
接分
回复 点赞
Heyongfeng 2005年03月29日
没用过,帮顶
回复 点赞
darkliu 2005年03月28日
up
回复 点赞
发动态
发帖子
Delphi
创建于2007-08-02

1471

社区成员

26.2w+

社区内容

Delphi 开发及应用
社区公告
暂无公告