装Office时,有一个文件,VBAXL8.HLP是应用VBA的帮助,应该有些参考价值,我也一直在研究Excel处理方法,应用OLE是一种极耗资源的方法!有这方面的资料或方法,多交流QQ:25857100,我一直在线!E_mail:[email protected]!

解决方案 »

  1.   

    如果有那位大虾知道,发我一份 Please mail to:[email protected]
      

  2.   

    我做了一个将EXCEL表数据转入纯文本文件的小程序,测试过程当中没有发现有合并单元
    格、设置网格线之类的麻烦啊,就象外部运行EXCEL一样。如果你说的是程序实现合并单
    元格和设置网格线,如果找到资料请贴出来大家共享好不好?终于被我发现一篇:
    利用Excel实现数据录入及打印预览(原创) - 浏览121次   Excel强大的数据录入功能极打印预览功能是其他大多数程序望尘莫及的,能不能在我们自己编的程序中调用Excel的数据录入功能及预览功能呢。实际上,使用Delphi你能完全控制Excel或Word的所有功能。虽然来自Excel对象层次内部非常复杂,但我们通过使用Variant(在OLE自动化中使用的Delphi的安全数组版本)通常可以简洁,容易的实现对Excel的控制。
      下面,我将我实际运用的一些方法介绍给大家:1.启动Excel  在Uses中加入Comobj;var
     v:Variant;
    begin
     v:=CreateOleobject(‘Excel.Application’);
     v.Visible:=true;
    end;  其中,Comobj中包含了用来检索OLE的对象和向其传发命令的例程,第一行代码启动Excel,执行后Excel会在内存中出现,因此第二行代码使之可见。2.关闭Excel  在创建了Excel Application对象后,调用它的Quit方法完成关闭事件。If not varIsEmpty(v) then v.quit;  如果需要在关闭前确定是否存盘,加入:v.DiaplayAlert:=true; //确定存盘
    v.DiaplayAlert:=false;//不存盘,直接退出
    (//Fox注:此处有待商榷。原文无)
    3.加入工作表及对其表格内容的操作var
     Sheet: Variant;
    begin
     v.workbook.add;
     v.Workbooks.Add;
     v.Workbooks[1].WorkSheets[1].Name := '数据录入';
     Sheet:= v.Workbooks[1].WorkSheets['数据录入'];
     Sheet.Cells[1,1] :='试验'; Label1.Caption:=Sheet.Cells[1,1];
    End;  Sheet对象是很多页的集合,其他的Workbooks是工作薄的集合,WorkSheets对象是工作表的集合,Charts对象是图表的集合。4.格式的设置var
     Range: Variant;
    begin
     Range := v.Workbooks[1].WorkSheets['数据录入'].Range['A2:M2’]; 
          //单元格从A2到M2 
      Range.Merge; //合并单元格
     Range.Rows.RowHeight := 20; //设置行高
     Range.Borders.LineStyle := 1; //加边框
     Range.Columns[2].ColumnWidth := 12; // 设置列宽
     Range.FormulaR1C1 := '标题';
     Range.HorizontalAlignment := xlCenter; //水平对齐方式 
     Range.VerticalAlignment := xlCenter; //垂直对齐方式
     Range.Characters.Font.Name := '宋体'; //字体
     Range.Characters.Font.FontStyle := '加粗';
     Range.Characters.Font.Size := 12;
     Range.Characters.Font.OutlineFont := False; //是否有下划线
     Range.Characters.Font.ColorIndex := xlAutomatic; //颜色
    end;  其他的属性可以察看MSDN或者其他资料。5. 打印的设置var
     Sheet: Variant;
    begin
     Sheet := XLApp1.Workbooks[1].WorkSheets['数据录入'];
     Sheet.PageSetup.PrintTitleRows :='$1:$3'; //页眉
     Sheet.PageSetup.PrintTitleColumns := '';
     Sheet.PageSetup.LeftFooter := ' 注:页脚'+' 总共&N页'+'--第&P页'; //页脚
     Sheet.PageSetup.LeftMargin := 30; //设置边距
     Sheet.PageSetup.RightMargin := 30;
     Sheet.PageSetup.TopMargin := 30;
     Sheet.PageSetup.BottomMargin := 50;
     Sheet.PageSetup.PrintQuality := 400; //分辨率
     Sheet.PageSetup.CenterHorizontally := True;//是否水平居中
     Sheet.PageSetup.CenterVertically := True; //是否垂直居中
     Sheet.PageSetup.Orientation := 2; //横向打印
     Sheet.PageSetup.Draft := False; //非草稿模式
     Sheet.PageSetup.FirstPageNumber := xlAutomatic;
     Sheet.PageSetup.BlackAndWhite := True; //黑白稿
     Sheet.PageSetup.Zoom := 100; //缩放
     sheet.PrintPreView; //打印预览
    end;  好了,到这,我已经介绍了大部分常用的控制方法,试试吧。提醒你,你的机子装了Excel没有…… 
      (演示代码及程序下载 - 183k)  作者:万重(转载请保持完整)
      2000.6.9    
     
      

  3.   

    多谢防暴狐狸!你的资料确实很难得,不过,好象其中在设置单元格的对齐上有问题,DELPHI不认识XLCENTER,不知你可知该如何解决?
      

  4.   

    对于 Range.HorizontalAlignment := 3;
      其中1:常规;2:左缩进;3:居中;4:靠右;5:填充
    对于 Range.VerticalAlignment := 2;
      其中1:靠上;2:居中;3:靠下;4:两端对齐
      

  5.   

    经实践证明,CY03LIQL是对的,多谢各位的指点。我在这儿有礼了,当然了,分还是会给的!希望继续得到各位的指点!
      

  6.   

    请CY03LIQL多多包涵,分值有限,但感激之情不可用分值衡量,希望继续得到你的支持!