老师想让我做个点名软件,需要加载excel,我就想先用delphi实现一下,基本功能都实现了,可是有些地方不太理解,网上的资料千篇一律,我具体没有解决的方法有:
1:怎么实现在原文件上保存//ExcelApp.ActiveWorkBook.Saved:=false;这句会提示是否保存对文件的更改,可点击是时又要另存为,不可以点击是的时候直接保存在原文件上;
2。每次运行完后都要手工用任务管理器把好多EXCEL.EXE进程关掉,怎么在程序里把这些关掉?

解决方案 »

  1.   

    第一個問題:
    如果不需要保存修改後的文件,直接關閉就行了。
    如果要保存就用:MSExcel.ActiveWorkbook.Save;
    第二個問題:
    MSExcel.Workbooks.Close; // 關閉;
    MSExcel.Quit;//退出;
    MSExcel := Unassigned;//將指針清空。
      

  2.   

    前辈,请问一下,怎么设置Cell[row,col].font.color,可以实现吗?
      

  3.   

    1、总的思路是将EXCEL作为一个OLE对象来操作。
    //在单元use部分加上:ComObj, Excel2000,并作如下定义:
    var ExcelApp, Book, Sheet, Range: Variant; 2、Excel程序对象的操作/设置
    //创建
    ExcelApp := CreateOleObject( 'Excel.Application' );
    //设置Excel窗口可见
    ExcelApp.Visible := True;
    //增加一个工作簿
    ExcelApp.WorkBooks.Add;
    Book := ExcelApp.Workbooks[1];
    //增加一个工作表
    Book.Worksheets.Add;
    Sheet := Book.Worksheets[1]; //保存文件
    Sheet.SaveAs(FileName);
    //退出Excel与释出
    if not VarIsEmpty(ExcelApp) then
      ExcelApp.Quit;
    ExcelApp := Unassigned;
     
    3、区域操作/设置
    //引用
    Range := Sheet.Range['A2:B3'];
    //合并
    Range.Merge;
    //赋值
    Range.Value := ''赋值';
    //格式
    Range.NumberFormatLocal := '@';               //数字格式设置为文本
    Range.NumberFormatLocal := 'yyyy-m-d';    //数字格式设置为yyyy-m-d日期
    Range.HorizontalAlignment := xlCenter;       //水平对齐
    Range.VerticalAlignment := xlCenter;            //垂直对齐
    Range.Font.Name := '黑体';                             //字体
    Range.Font.Size := 18;
    Range.Font.Bold := true;
    //边框
    Range.Borders[xlEdgeLeft].LineStyle := xlContinuous;     //左
    Range.Borders[xlEdgeLeft].Weight := xlThin;
    Range.Borders[xlEdgeRight].LineStyle := xlContinuous;  //右
    Range.Borders[xlEdgeRight].Weight := xlThin;
    Range.Borders[xlEdgeTop].LineStyle := xlContinuous;    //上
    Range.Borders[xlEdgeTop].Weight := xlThin;
    Range.Borders[xlEdgeBottom].LineStyle := xlContinuous;         //下
    Range.Borders[xlEdgeBottom].Weight := xlThin;
    Range.Borders[xlInsideHorizontal].LineStyle := xlContinuous;  //内竖
    Range.Borders[xlInsideHorizontal].Weight := xlThin;
    Range.Borders[xlInsideVertical].LineStyle := xlContinuous;      //内横
    Range.Borders[xlInsideVertical].Weight := xlThin;
     
    4、单元格操作/设置
    //单元格采用行、列号引用,设 row、col为行、列号
    //赋值
    Sheet.Cells(row, col) := '赋值';
    //设置格式同区域,改成这样来引用
    Sheet.Cells.Item[row, col].HorizontalAlignment := xlCenter;
     
    5、其它
    //行高、列宽自适应
    Sheet.Cells.Rows.AutoFit;
    Sheet.Cells.Columns.AutoFit;
    http://blog.csdn.net/tjianliang/archive/2006/10/18/1339472.aspx
      

  4.   


    ExcelApp.WorkSheets[1].Range[ExcelApp.Cells[row,col],ExcelApp[row,col]].Font.Color:=clRed;
    为什么这样设置某单元格字体颜色失败,提示末初始化?