如题

解决方案 »

  1.   

    TO:cronuz(cronus)
    如何控制字体的大小哪?谢谢
      

  2.   

    XLApp.Range['B16:M26'].Font.Size := 12; 
      

  3.   

    TO:cronuz(cronus)
    导出的时候我怎么知道Font.Size 会等于多少哪?还有如何让Excel的表格宽度与stringgrid的宽度相一致哪?谢谢!!
      

  4.   

    hehe~~~、怎麼光見問題在長、不見分長呀?
    再説NI好象也”ding”不動了、我不来NI就”死”定了。hihiSheet.Range[RefToCell(1, 1), RefToCell(AGrid.RowCount,AGrid.ColCount)].Font.Size := AGrid.Font.Size;for i := 1 to AGrid.ColCount do
    begin
      Sheet.Columns[i].ColumnWidth := Length(AGrid.Cells[i,1]);
      //Sheet.Columns[i].ColumnWidth := Length(AGrid.ColWidths[i]);
    end;
      

  5.   

    TO:cronuz(cronus) 
    不好意思,麻烦你再回答一下,想着给你加分结果不知论坛有什么故障,现在什么都看不到了!
      

  6.   

    楼主:不用再開貼的、在原来的貼子上就有把分増加的功能呀!(按「管理」鍵後可看到)http://community.csdn.net/Expert/topic/3238/3238916.xml?temp=.7017938
      

  7.   

    unit Unit6;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      ComObj, StdCtrls, Grids;type
      TForm1 = class(TForm)
        StringGrid1: TStringGrid;
        Button1: TButton;
        Button2: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;  procedure SGridToExcel(SGrid: TStringGrid; ExcelFileName: String);var
      Form1: TForm1;implementation{$R *.DFM}procedure SGridToExcel(SGrid: TStringGrid; ExcelFileName: String);
    var
      ExcelApp,
      WorkSheet: Variant;  i,j: Integer;
    begin
      try
        ExcelApp  := CreateOLEObject('Excel.Application');
        WorkSheet := CreateOLEObject('Excel.Sheet');
      except
        ShowMessage('  提示:您尚未安装 Microsoft Excel 或其不可用!  ');
        exit;
      end;  WorkSheet := ExcelApp.WorkBooks.Add;  for i := 0 to SGrid.RowCount - 1 do
      begin
        for j := 0 to SGrid.ColCount - 1 do
        begin
          ExcelApp.Cells[i+1,j+1] := SGrid.Cells[i,j];
        end;
      end;  WorkSheet.SaveAs(ExcelFileName);
      WorkSheet.Close;  ExcelApp.Quit;
      ExcelApp := UnAssigned;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      SGridToExcel(StringGrid1,'D:\demo.xls');end;procedure TForm1.Button2Click(Sender: TObject);var
      I, J, K : Integer;
    begin
      K := 0;
      with StringGrid1 do
      begin
        for I := 0 to ColCount - 1 do
        begin
          for J:= 0 to RowCount - 1 do
          begin
            K := K + 1;
            Cells[I,J] := IntToStr(K);
          end;
        end;
      end;
    end;end.
      

  8.   

    TO:cronuz(cronus)
    你按【管理】看有什么结果?^_^
      

  9.   

    這個貼子怎麼変成空白了、我昨日的答案怎麼也不見了。CSDN最近搞什麼鬼...function SaveAsExcelFile(AGrid: TStringGrid; ASheetName, AFileName: string): Boolean;
    const
      xlWBATWorksheet = -4167;
    var
      XLApp, Sheet, Data: OLEVariant;
      i, j: Integer;
    begin
      // Prepare Data
      Data := VarArrayCreate([1, AGrid.RowCount, 1, AGrid.ColCount], varVariant);
      for i := 0 to AGrid.ColCount - 1 do
        for j := 0 to AGrid.RowCount - 1 do
          Data[j + 1, i + 1] := AGrid.Cells[i, j];
      // Create Excel-OLE Object
      Result := False;
      XLApp := CreateOleObject('Excel.Application');
      try
        // Hide Excel
        XLApp.Visible := false;
        // Add new Workbook
        XLApp.Workbooks.Add(xlWBatWorkSheet);
        Sheet := XLApp.Workbooks[1].WorkSheets[1];
        Sheet.Name := ASheetName;
        //Width,Font的設定
        Sheet.Range[RefToCell(1, 1), RefToCell(AGrid.RowCount,AGrid.ColCount)].Font.Size := AGrid.Font.Size;
        for i := 1 to AGrid.ColCount do
        begin
           Sheet.Columns[i].ColumnWidth := Length(AGrid.Cells[i,1]);
          //Sheet.Columns[i].ColumnWidth := Length(AGrid.ColWidths[i]);
        end;
        // Fill up the sheet
        Sheet.Range[RefToCell(1, 1), RefToCell(AGrid.RowCount,
          AGrid.ColCount)].Value := Data;
        // Save Excel Worksheet
        try
          XLApp.Workbooks[1].SaveAs(AFileName);
          Result := True;
        except
          // Error
        end;
      finally
        // Quit Excel
        if not VarIsEmpty(XLApp) then
        begin
          XLApp.DisplayAlerts := False;
          XLApp.Quit;
          XLAPP := Unassigned;
          Sheet := Unassigned;
        end;
      end;
    end;function RefToCell(ARow, ACol: Integer): string;
    begin
      Result := Chr(Ord('A') + ACol - 1) + IntToStr(ARow);
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      if SaveAsExcelFile(stringGrid1, 'My Stringgrid Data', ExtractFilePath (Application.ExeName)+'MyExcelFile.xls') then
        ShowMessage('StringGrid saved!');
    end;