EXCEL的编程 ( 积分: 100 )

  • 主题发起人 主题发起人 苍蝇拍子
  • 开始时间 开始时间

苍蝇拍子

Unregistered / Unconfirmed
GUEST, unregistred user!
使用动态创建的方法创建 excel对象
var ExcelApp: Variant;
ExcelApp := CreateOleObject( 'Excel.Application' );

问:
我的单元格式有以下几种,如何定义:
1)字符串:要求左对齐
2)货币:要求有¥和三位分割逗号
3)浮点数字:右对齐,且小数位数为2
4)日期:格式 yyyy-mm-dd 或者 yyyy年mm月dd日

哪位大侠晓得,谢谢
 
使用动态创建的方法创建 excel对象
var ExcelApp: Variant;
ExcelApp := CreateOleObject( 'Excel.Application' );

问:
我的单元格式有以下几种,如何定义:
1)字符串:要求左对齐
2)货币:要求有¥和三位分割逗号
3)浮点数字:右对齐,且小数位数为2
4)日期:格式 yyyy-mm-dd 或者 yyyy年mm月dd日

哪位大侠晓得,谢谢
 
我回答过的一个问题
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3219967

设置不同的属性就可以了,先在Execl里面设置出宏,然后可以就了
具体步骤如下:
菜单 -- 工具-- 宏-- 录制新宏 ,这样就开始录制了
然后在Execl里面随便找一个单元格,点击右键,在菜单里面选中"设置单元格格式",然后在里面设置你要的东西,比如对齐,等等,录制完以后,点击菜单里面的停止录制
再打开刚刚那个菜单,工具--宏--宏,然后找到刚刚录制的那个宏,点击编辑按钮,就可以看到代码了,把里面的代码移植出来就可以,需要自己去完善




HorizontalAlignment := xlLeft 左对齐
NumberFormatLocal = "[DBNum1][$-804]m""月""d""日"";@" 日期格式


--------------------------------------
回答结束,如果还有问题,留下QQ,记得给分
 
哪里有这个语法手册介绍
 
delphi中如何对应这个语法?
 
delphi中没有的,你需要关于excel的函数等,要买个开发人员版的office了。
可以通过在excel里录制宏来解决问题。
 
留个地址 我给你一个参考 不过是VB的例子 其实也差不多啦
 
chenybin的方法可行,我們都是用這個對做的,要好好研究
 
chenybin说的方法可行,偶也是这么做的。chenybin最近好象时间很多的样子回答了不少问题,分都几次排第一了
 
fumian@tom.com
谢谢!
 
找了几个例子,基本测试通过,但是有个问题想请教:
在excel中,有三个 sheet, 分别是 sheet1,sheet2, sheet3 我如何只要 sheet1,而不要 sheet2和sheet3
 
 Delphi控制Excel的方法

  1 创建Excel文件

  要在Delphi中控制Excel,就必须用到OLE自动化。现在一般采用OLE2来创建OLE对象,当激活一个OLE对象时,服务器程序仅在容器程序内部激活,这就是所谓的“就地激活”(in-place activation)。

  创建Excel文件时,先创建一个OLE对象,然后在对象中建立工作表worksheet,如函数createExcel所示:

  function createExcel:variant;

  var

  v:variant;

  sheet:variant;

  begin

  v:=createoleobject('Excel.Application');//创建OLE对象

  v.visible:=true;

  v.workbooks.add(-4167); //添加工作表

  v.workbooks[1].sheets[1].name:='test';

  sheet:=v.workbooks[1].sheets['test'];

  return v;

  end;
可以设置单元格的高度等值,但是编码实现格式修改的好象还没看到过,一般我们打开了EXCEL之后就直接对EXCEL操作了,比较偷懒。
 
知道了

var
ExcelApp: OleVariant;
WorkBook: OleVariant;
WorkSheet: OleVariant;
begin
try
try

ExcelApp := CreateOleObject( 'Excel.Application' );
ExcelApp.Visible:=false;
ExcelApp.DisplayAlerts := False;

WorkBook := ExcelApp.Workbooks.Add(-4167); // 好像是这句的作用,使得只有一个sheet,不过 -4167是什么意思?
WorkBook.WorkSheets[1].Name := 'Test Data 2';

//设置列宽
ExcelApp.ActiveSheet.Columns[1].ColumnWidth := 7;
ExcelApp.ActiveSheet.Columns[2].ColumnWidth := 5;
ExcelApp.ActiveSheet.Columns[3].ColumnWidth := 5;
ExcelApp.ActiveSheet.Columns[4].ColumnWidth := 11;
ExcelApp.ActiveSheet.Columns[5].ColumnWidth := 9;
ExcelApp.ActiveSheet.Columns[6].ColumnWidth := 9;
ExcelApp.ActiveSheet.Columns[7].ColumnWidth := 9;
ExcelApp.ActiveSheet.Columns[8].ColumnWidth := 10;
ExcelApp.ActiveSheet.Columns[9].ColumnWidth := 10;
ExcelApp.ActiveSheet.Columns[10].ColumnWidth := 16;

//添加表头 20040310 muhx
ExcelApp.Cells[1,5].Value := '测试数据';
ExcelApp.ActiveSheet.Range['A1:J1'].Borders[3].Weight := 3;
ExcelApp.ActiveSheet.Range['A1:J1'].Borders[4].Weight := 3;
ExcelApp.ActiveSheet.Rows[1].Font.Bold := True;
ExcelApp.Cells[2,1].Value := '通道号';
ExcelApp.Cells[2,2].Value := '区号';
ExcelApp.Cells[2,3].Value := '板号';
ExcelApp.Cells[2,4].Value := '板上电池号';
ExcelApp.Cells[2,5].Value := '电池编号';
ExcelApp.Cells[2,6].Value := '通道选择';
ExcelApp.Cells[2,7].Value := '分选结果';
ExcelApp.Cells[2,8].Value := '电压(mV)';
ExcelApp.Cells[2,9].Value := '内阻(mΩ)';
ExcelApp.Cells[2,10].Value := '检测时间';
ExcelApp.ActiveSheet.Range['A2:J2'].Borders[4].Weight := 3;

ExcelApp.ActiveWorkBook.SaveAs('2.xls');
except
on E : EOleException do showmessage(e.Message) ;
end ;
finally
if not VarisEmpty(ExcelApp) then
begin
ExcelApp.WorkBooks.Close;
ExcelApp.Quit;
ExcelApp:=UnAssigned ;
end;
end ;

end;
 
耐心看,总会看得出些道道的
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2039437
在delphi中完全控制Excel
 
后退
顶部