excel的控制问题大讨论(50分)

  • 主题发起人 主题发起人 yitanhg
  • 开始时间 开始时间
Y

yitanhg

Unregistered / Unconfirmed
GUEST, unregistred user!
请提供你所知道的有关在DELPHI中,控制EXCEL的方法,及其各种相关的操作,属性
 
请看一下“Delphi与Word之间的融合技术”,那里的资料已经比较详细了,还有一个很有用的unit。
 
“Delphi与Word之间的融合技术”在哪里?
 
给你摘录了一些,看看有没有用
private
{ Private declarations }
XLApp:Variant;

implementation
uses Comobj;
const xlchart=-4109;
xlDialogSheet=-4116;
xlExcel4IntlMacroSheet=4;
xlExcel4MacroSheet=3;
xlWorkSheet=-4167;
xlWBATChart=-4109;
xlWBATExcel4IntlMacroSheet=4;
xlWBATExcel4MacroSheet=3;
xlWBATWorkSheet=-4167;

xlApp:=createOleObject('Excel.Application');
xlApp.Visible:=False;
xlApp.workbooks.open(filepath+'sample.xls');
sheet:=xlApp.WorkBooks[1].worksheets['IN'];

sheet.Cells[1,1]:='统计('+Mystr+')';
while not Table1.Eof do
begin
sheet.Cells[IntToStr(Table1.Fields[0].AsInteger+4),1]:=Table1.Fields[2].AsString;
end
 
re:“Delphi与Word之间的融合技术”在哪里?
这个板,和你的问题在一起的一个问题,yzhshi提问的。2001-12-4
 
我刚看到“Delphi与Word之间的融合技术”,那比较详细,你还是去看看吧。
 
我觉得这个是看你怎么控制了,你要是把他当一个工具来用的话就用那些Delphi本身的一些
组件来操作就可要了,还有一些其他的函数就可以了,如果你只把他当做一个文件的话你可要
对他的定义格式进行操作
下面是他的定义格式
// Excel format
const
XLSBOF: array[0..4] of Word = ($409, 6, 0, $10, 0);
XLSGUTS: array[0..5] of Word = ($80, 8, 0, 0, 0, 0);
XLSPalette: array[0..2] of Word = ($92, 0, 0);
XLSDimension: array [0..6] of Word = ($200, $0A, 0, $FFFF, 0, $FF, 0);
XLSEOF: array[0..1] of Word = ($0A, 0);
XLSFONTH: array[0..9] of Byte = ($31, 2, 0, 0, 0, 0, 0, 0, 8, 0);
XLSFONTG: array[0..9] of Byte = ($31, 2, 0, 0, 0, 0, 0, 0, 10, 0);
XLSFONT: array[0..9] of Byte = ($31, 2, 0, 0, 0, 0, 0, 0, 0, 0);
XLSXF1: array[0..15] of Byte = ($43, 4, $0C, 0, 0, 0, $F5, $FF, $20, 0, 0, $CE, 0, 0, 0, 0);
XLSXF2: array[0..15] of Byte = ($43, 4, $0C, 0, 1, 0, $F5, $FF, $20, $F4, 0, $CE, 0, 0, 0, 0);
XLSXF3: array[0..15] of Byte = ($43, 4, $0C, 0, 2, 0, $F5, $FF, $20, $F4, 0, $CE, 0, 0, 0, 0);
XLSXF4: array[0..15] of Byte = ($43, 4, $0C, 0, 0, 0, $F5, $FF, $20, $F4, 0, $CE, 0, 0, 0, 0);
XLSXF5: array[0..15] of Byte = ($43, 4, $0C, 0, 0, 0, 1, 0, $20, 0, 0, $CE, 0, 0, 0, 0);
XLSXF6: array[0..15] of Byte = ($43, 4, $0C, 0, 1, $21, $F5, $FF, $20, $F8, 0, $CE, 0, 0, 0, 0);
XLSXF7: array[0..15] of Byte = ($43, 4, $0C, 0, 1, $1F, $F5, $FF, $20, $F8, 0, $CE, 0, 0, 0, 0);
XLSXF8: array[0..15] of Byte = ($43, 4, $0C, 0, 1, $20, $F5, $FF, $20, $F8, 0, $CE, 0, 0, 0, 0);
XLSXF9: array[0..15] of Byte = ($43, 4, $0C, 0, 1, $1E, $F5, $FF, $20, $F8, 0, $CE, 0, 0, 0, 0);
XLSXF10: array[0..15] of Byte = ($43, 4, $0C, 0, 1, $0D, $F5, $FF, $20, $F8, 0, $CE, 0, 0, 0, 0);
XLSXF: array[0..15] of Byte = ($43, 4, $0C, 0, 5, 0, 1, 0, $21, $78, $41, 3, 0, 0, 0, 0);
XLSXFB: array[0..15] of Byte = ($43, 4, $0C, 0, 8, 0, 1, 0, $22, $78, $41, 2, $71, $71, $71, 0);
XLSXFH: array[0..15] of Byte = ($43, 4, $0C, 0, 6, 0, 1, 0, $22, $78, $41, 2, $71, $71, $71, $71);
XLSXFG: array[0..15] of Byte = ($43, 4, $0C, 0, 7, 0, 1, 0, $21, $78, $C1, 2, 0, 0, 0, 0);
XLSXFF: array[0..15] of Byte = ($43, 4, $0C, 0, 5, 0, 1, 0, $22, $78, $C1, 2, $B9, $B9, $B9, $B9);
XLSXFF1: array[0..15] of Byte = ($43, 4, $0C, 0, 5, 0, 1, 0, $22, $78, $C1, 2, $B9, 0, $B9, 0);
XLSXFRF: array[0..15] of Byte = ($43, 4, $0C, 0, 9, 0, 1, 0, $21, $78, $C1, 2, $B9, $B9, $B9, $B9);
XLSXFRF1: array[0..15] of Byte = ($43, 4, $0C, 0, 9, 0, 1, 0, $21, $78, $C1, 2, $B9, 0, $B9, 0);
XLSCOL: array[0..7] of Word = ($7D, $0C, 0, 0, 0, $F, 0, 0);
XLSSFONT: array[0..15] of Byte = ($31, 2, $0C, 0, $C8, 0, 0, 0, $FF, $7F, 5, $41, $72, $69, $61, $6C);
XLSLabel: array[0..5] of Word = ($204, 0, 0, 0, 0, 0);//对单元个的定义操作
XLSBlank: array[0..4] of Word = ($201, 6, 0, 0, $17);
XLSBlankF: array[0..4] of Word = ($201, 6, 0, 0, $19);
XLSBlankRF: array[0..4] of Word = ($201, 6, 0, 0, $1C);
// XLSBlankH: array[0..4] of Word = ($201, 6, 0, 0, $16);
// XLSBlankB: array[0..4] of Word = ($201, 6, 0, 0, $1A);
XLSNumber: array[0..4] of Word = ($203, 14, 0, 0, 0);
XLSRK: array[0..4] of Word = ($27E, 10, 0, 0, 0);
XLSFormula: array[0..15] of Word =($406, $1D, 0, 0, $18, 0, 0, 0, 0, 3, $0B, $25, 0, 0, 0, 0);
 
oleobject
DELPHI自带控件
ADO odbc
 
用ole和server控件汇合使用,效果很是不错,我一直再用,至于控制Excel的方法,那多了,
再以前的帖子也很多这方面的内容。
 
有必要完全控制excel吗?
能够存取就行了,如果确实必要,为何不把数据完全导入excel,然后在excel下操作;
或者利用其他的方法
 
to robertcool:

你知不知道doc文件的格式,若你知道的话(或相关的得到文件格式信息的方法),请赐教!万分感激!!
我的email:chensr@toone.com.cn
愿以我的全部分相赠!!!(420)
 
请用OLEOBJECT
另外参照EXCEL帮助,很全的
 
在这里也贴一下吧,呵呵。一点心得。
http://www.delphibbs.com/delphibbs/dispq.asp?lid=737517
对于Word,或者说Office系列,很多属性、方法我们并不,也不必都知道,实际
使用中可以这样详细了解:
1、查找帮助,D:/Program Files/Microsoft Office/Office10/2052/VBA*.CHM
2、可以在工具->宏->录制新宏,然后去做你想用代码实现的东西,做完后,
到工具->宏->Visual Basic 编辑器里面里面查看相应的宏,就知道如何实现了,
然后在录制的宏中就可以看到你需要的命令了,当然,可能并不都是需要的,取其
中的核心就可以了。
对于Delphi调用,一般也是直接使用即可。
 
多人接受答案了。
 
后退
顶部