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;
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;
while not ADataSet.Eof do begin with ssbSample.ActiveSheet.GetCellObject( ADataSet.FieldByName('列').AsInteger, ADataSet.FieldByName('行').AsInteger) do begin Text := '赋值'; end; ADataSet.Next; end;
Text1.Text = Spreadsheet1.Cells(i, j)但是在Delphi不知怎样用!
烦请高手指点!!
Str := Spreadsheet1.ActiveSheet.Cells.Item[1,1].Value;
赋值
Spreadsheet1.ActiveSheet.Cells.Item[1,1].Value := 'a';Item[iCol,iRow],其中col和row从1开始
Str := Spreadsheet1.ActiveSheet.Cells.Item[1,1].Value;
赋值
Spreadsheet1.ActiveSheet.Cells.Item[1,1].Value := 'a';Item[iCol,iRow],其中col和row从1开始不行啊,还是提示错误。
Text1.Text = Spreadsheet1.Cells(i, j)但是在Delphi不知怎样用!
烦请高手指点!!
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;
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;
Spreadsheet1.Cells(1, 1): = '第1行,第1列;
Edit1.Text: = Spreadsheet1.Cells(i, j);
begin
Text := adsReportData.FieldByName('SFORMULA').AsString;
Free;
end;
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
begin
with ssbSample.ActiveSheet.GetCellObject(
ADataSet.FieldByName('列').AsInteger,
ADataSet.FieldByName('行').AsInteger) do
begin
Text := '赋值';
end;
ADataSet.Next;
end;