有谁用过Spreadsheet吗!!怎样进行单元格的读取和赋值呢?

解决方案 »

  1.   

    在VB中可以这样用:Spreadsheet1.Cells(1, 1) = "第1行,第1列"
    Text1.Text = Spreadsheet1.Cells(i, j)但是在Delphi不知怎样用!
    烦请高手指点!!
      

  2.   

    读取
    Str := Spreadsheet1.ActiveSheet.Cells.Item[1,1].Value;
    赋值
    Spreadsheet1.ActiveSheet.Cells.Item[1,1].Value := 'a';Item[iCol,iRow],其中col和row从1开始
      

  3.   

    读取
    Str := Spreadsheet1.ActiveSheet.Cells.Item[1,1].Value;
    赋值
    Spreadsheet1.ActiveSheet.Cells.Item[1,1].Value := 'a';Item[iCol,iRow],其中col和row从1开始不行啊,还是提示错误。
      

  4.   

    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控件执行某些无须显示结果于在屏幕上的后台计算。
      

  5.   

    我想和VB中这样:Spreadsheet1.Cells(1, 1) = "第1行,第1列"
    Text1.Text = Spreadsheet1.Cells(i, j)但是在Delphi不知怎样用!
    烦请高手指点!!
      

  6.   

    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;
      

  7.   

    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;
      

  8.   

    大兄弟作队日外包吧
    Spreadsheet1.Cells(1, 1): = '第1行,第1列;
    Edit1.Text: = Spreadsheet1.Cells(i, j);
      

  9.   

    倒...       with Spreadsheet1.ActiveSheet.GetCellObject(iCol, ARow) do
           begin
              Text := adsReportData.FieldByName('SFORMULA').AsString;
               Free;
           end;
      

  10.   

    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
      

  11.   

    while not ADataSet.Eof do
        begin
          with ssbSample.ActiveSheet.GetCellObject(
                  ADataSet.FieldByName('列').AsInteger,
                  ADataSet.FieldByName('行').AsInteger)  do
          begin
              Text := '赋值';
          end;    
          ADataSet.Next;
        end;