如何代码创建word,excel,ppt,mdb,txt,等文件.通过delphi7 请求大家多多帮忙了。 在线等候您的答案 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1)word :procedure TForm1.Button1Click(Sender: object); var MSWord: Variant; begin MSWord := CreateOLEObject('Word.Application');//连接Word ,须要在use后加ComObjMSWord.Documents.Open(FileName:='d:\abc.doc', ReadOnly:=True);//打开外部Word文档 MSWord.Visible := 1;//是否显示文件编辑 end; 2)excel:首先创建 Excel 对象,使用ComObj:var ExcelApp: Variant;ExcelApp := CreateOleObject( 'Excel.Application' );1) 显示当前窗口:ExcelApp.Visible := True;2) 更改 Excel 标题栏:ExcelApp.Caption := '应用程序调用 Microsoft Excel';3) 添加新工作簿:ExcelApp.WorkBooks.Add;4) 打开已存在的工作簿:ExcelApp.WorkBooks.Open( 'C:\Excel\Demo.xls' );5) 设置第2个工作表为活动工作表:ExcelApp.WorkSheets[2].Activate; 或 ExcelApp.WorksSheets[ 'Sheet2' ].Activate;6) 给单元格赋值:ExcelApp.Cells[1,4].Value := '第一行第四列';7) 设置指定列的宽度(单位:字符个数),以第一列为例:ExcelApp.ActiveSheet.Columns[1].ColumnWidth := 5;8) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:ExcelApp.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米9) 在第8行之前插入分页符:ExcelApp.WorkSheets[1].Rows[8].PageBreak := 1;10) 在第8列之前删除分页符:ExcelApp.ActiveSheet.Columns[4].PageBreak := 0;11) 指定边框线宽度:ExcelApp.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3;1-左 2-右 3-顶 4-底 5-斜( \ ) 6-斜( / )12) 清除第一行第四列单元格公式:ExcelApp.ActiveSheet.Cells[1,4].ClearContents;13) 设置第一行字体属性:ExcelApp.ActiveSheet.Rows[1].Font.Name := '隶书';ExcelApp.ActiveSheet.Rows[1].Font.Color := clBlue;ExcelApp.ActiveSheet.Rows[1].Font.Bold := True;ExcelApp.ActiveSheet.Rows[1].Font.UnderLine := True;3)很少人做 不过也同理4)mdb:procedure TSDIAppForm.CreateMDB(DBName: string); // 系统需要安装 MADACvar CreateAccess: OleVariant;begin CreateAccess := CreateOleObject('ADOX.Catalog'); CreateAccess.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + DBName);end;5)txt:tstringlist.savetofile('c:\a.txt'); 非常感谢visual_cjiajia(bios(阿贡)) 同志的发言了..很想知道如何解决创建ppt,还有mpp,vsd文件?还有,要是创建bmp怎么办?其实最终的目的是要实现在delphi程序中.调用在文件夹下点右键中的新建菜单的子菜单的功能.所以所有的新建都要实现.取得菜单项目我已经通过注册表取得了。现在问题就是有些office文件,还有一些常用的非office文件如何创建的问题了?请大家多多讨论了?继续完善这个话题. 参考《电子笔记簿》的新键,那种是WINDOWS的SHELL扩展,只要你的新键菜单的二进制值满足创建他的程序的格式就可以自动创建了不知道你明白的没有! 在dephi中通过程序处理office组件有三种方式:1.use comobj .二楼的已经做了详细的介绍了.2.直接使用servers标签页中组件,相关的代码都在$(DELPHI)\Ocx\Servers目标下.至于都用到的参数可以看到.送上一段代码use Excel2000;const lcid = LOCALE_USER_DEFAULT;procedure TForm1.cxButton1Click(Sender: TObject);var xlApp : TExcelApplication; xlWorkBook : TExcelWorkbook; xlSheet: TExcelWorksheet; xlRegion : ExcelRange; selection : Variant ; OpenFileName : String ;begin If OpenDialog1.Execute Then Begin OpenFileName := OpenDialog1.FileName ; Try xlApp := TExcelApplication.Create(Self); xlWorkBook := TExcelWorkbook.Create(Self); xlSheet := TExcelWorksheet.Create(Self); Try xlApp.ConnectKind := ckRunningOrNew; xlApp.Connect; xlWorkBook.ConnectTo(xlApp.Workbooks.Open(OpenFileName , True ,False,EmptyParam,EmptyParam,EmptyParam,EmptyParam , EmptyParam,EmptyParam,EmptyParam , EmptyParam , EmptyParam , EmptyParam , lcid )); xlSheet.ConnectTo(xlWorkBook.ActiveSheet as _WorkSheet); xlApp.Visible[lcid] := True; xlRegion := xlSheet.Range['A1', EmptyParam]; xlRegion.CurrentRegion.Select ; Try xlApp.ActiveCell.SpecialCells(xlCellTypeBlanks, EmptyParam).Select ; selection := xlApp.Selection[lcid] ; selection.FormulaR1C1 := '=R[-1]C' ; Except End ; Finally xlSheet.Free; xlWorkBook.Free; xlApp.Free; End ; Except ShowMessage('Error'); Exit ; End ; End ;end;上面一段代码在vba实现的代码为 Range("A1").Select Selection.CurrentRegion.Select Selection.SpecialCells(xlCellTypeBlanks).Select Selection.FormulaR1C1 = "=R[-1]C"二楼说的,用使用mdb,其实是使用adox,不是那种真正操作mdb文件,而是和使用ado一样使用数据操作罢了.希望能和大家共同探讨vba开发. cxgrid如何自动选中我查询出的数据 delphi delphi怎么编写的DLL才能被C++调用 如何编制一个IP输入框? 关于网上邻居复制文件 关于文件处理的菜问题 求书 我要用CoCreateInstance()API函数,应如何用?要哪些单元? 向数据库中插入日期时间类型数据的问题? 新版的MCLIUB可以下载了!!! SQLserver里要在登记新数据时自动生成其SysID,该如何在ADOQuery里写啊? 第24题):老师给出毕业设计题目了麻烦事大了!!!救命!
var MSWord: Variant;
begin
MSWord := CreateOLEObject('Word.Application');//连接Word ,须要在use后加ComObj
MSWord.Documents.Open(FileName:='d:\abc.doc',
ReadOnly:=True);//打开外部Word文档
MSWord.Visible := 1;//是否显示文件编辑
end; 2)excel:
首先创建 Excel 对象,使用ComObj:
var ExcelApp: Variant;
ExcelApp := CreateOleObject( 'Excel.Application' );
1) 显示当前窗口:
ExcelApp.Visible := True;
2) 更改 Excel 标题栏:
ExcelApp.Caption := '应用程序调用 Microsoft Excel';
3) 添加新工作簿:
ExcelApp.WorkBooks.Add;
4) 打开已存在的工作簿:
ExcelApp.WorkBooks.Open( 'C:\Excel\Demo.xls' );
5) 设置第2个工作表为活动工作表:
ExcelApp.WorkSheets[2].Activate;
或
ExcelApp.WorksSheets[ 'Sheet2' ].Activate;
6) 给单元格赋值:
ExcelApp.Cells[1,4].Value := '第一行第四列';
7) 设置指定列的宽度(单位:字符个数),以第一列为例:
ExcelApp.ActiveSheet.Columns[1].ColumnWidth := 5;
8) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:
ExcelApp.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米
9) 在第8行之前插入分页符:
ExcelApp.WorkSheets[1].Rows[8].PageBreak := 1;
10) 在第8列之前删除分页符:
ExcelApp.ActiveSheet.Columns[4].PageBreak := 0;
11) 指定边框线宽度:
ExcelApp.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3;
1-左 2-右 3-顶 4-底 5-斜( \ ) 6-斜( / )
12) 清除第一行第四列单元格公式:
ExcelApp.ActiveSheet.Cells[1,4].ClearContents;
13) 设置第一行字体属性:
ExcelApp.ActiveSheet.Rows[1].Font.Name := '隶书';
ExcelApp.ActiveSheet.Rows[1].Font.Color := clBlue;
ExcelApp.ActiveSheet.Rows[1].Font.Bold := True;
ExcelApp.ActiveSheet.Rows[1].Font.UnderLine := True;3)很少人做 不过也同理
4)mdb:
procedure TSDIAppForm.CreateMDB(DBName: string); // 系统需要安装 MADAC
var
CreateAccess: OleVariant;
begin
CreateAccess := CreateOleObject('ADOX.Catalog');
CreateAccess.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + DBName);
end;
5)txt:tstringlist.savetofile('c:\a.txt');
创建bmp怎么办?
其实最终的目的是要实现在delphi程序中.调用在
文件夹下点右键中的新建菜单的子菜单的功能.所以所有的新建
都要实现.取得菜单项目我已经通过注册表取得了。现在问题就是
有些office文件,还有一些常用的非office文件如何创建的问题了?
请大家多多讨论了?继续完善这个话题.
二进制值满足创建他的程序的格式就可以自动创建了
不知道你明白的没有!
1.use comobj .二楼的已经做了详细的介绍了.
2.直接使用servers标签页中组件,相关的代码都在$(DELPHI)\Ocx\Servers目标下.至于都用到的参数可以看到.
送上一段代码use Excel2000;const
lcid = LOCALE_USER_DEFAULT;procedure TForm1.cxButton1Click(Sender: TObject);
var
xlApp : TExcelApplication;
xlWorkBook : TExcelWorkbook;
xlSheet: TExcelWorksheet;
xlRegion : ExcelRange;
selection : Variant ;
OpenFileName : String ;
begin
If OpenDialog1.Execute Then Begin
OpenFileName := OpenDialog1.FileName ;
Try
xlApp := TExcelApplication.Create(Self);
xlWorkBook := TExcelWorkbook.Create(Self);
xlSheet := TExcelWorksheet.Create(Self);
Try
xlApp.ConnectKind := ckRunningOrNew;
xlApp.Connect; xlWorkBook.ConnectTo(xlApp.Workbooks.Open(OpenFileName , True ,False,EmptyParam,EmptyParam,EmptyParam,EmptyParam ,
EmptyParam,EmptyParam,EmptyParam , EmptyParam , EmptyParam , EmptyParam , lcid ));
xlSheet.ConnectTo(xlWorkBook.ActiveSheet as _WorkSheet);
xlApp.Visible[lcid] := True;
xlRegion := xlSheet.Range['A1', EmptyParam];
xlRegion.CurrentRegion.Select ;
Try
xlApp.ActiveCell.SpecialCells(xlCellTypeBlanks, EmptyParam).Select ;
selection := xlApp.Selection[lcid] ;
selection.FormulaR1C1 := '=R[-1]C' ;
Except End ; Finally
xlSheet.Free;
xlWorkBook.Free;
xlApp.Free;
End ;
Except
ShowMessage('Error');
Exit ;
End ;
End ;
end;上面一段代码在vba实现的代码为
Range("A1").Select
Selection.CurrentRegion.Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "=R[-1]C"
二楼说的,用使用mdb,其实是使用adox,不是那种真正操作mdb文件,而是和使用ado一样使用数据操作罢了.
希望能和大家共同探讨vba开发.