关于delphi+excel新问题,各位朋友进来发表一下意见 在delphi中能否实现对excel表格文件的操作?能打开并修改数据内容,并可以保存.日后用EXCEL打开而并不影响EXCEL的格式? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 隻要你會用EXCEL的VBA,什麼都是可能的. ""隻要你會用EXCEL的VBA,什麼都是可能的.""怎么讲.??? 怎麼講?不想再講了,你參考這個吧:http://expert.csdn.net/Expert/topic/1904/1904163.xml?temp=.9032099 是呀,用vba是很方便的,不过你同时也具备写宏病毒的素质了。呵呵。 转贴:需要servers中的ExcelApplication(ea)、ExcelWorksheet(ews)和ExcelWorkbook(ewb)//连接模版 ea.Connect; ewb.ConnectTo(ea.workbooks.open(strtable,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam ,emptyparam,emptyparam,emptyparam,emptyparam,i)); ews.connectTo(ewb.activesheet as _worksheet);//填入表头和表尾 ews.cells.item[4,2].value:=cbyear.text; ews.cells.item[4,4].value:=cbmonth.text; ews.Cells.Item[4,1].value:=cbtrade.Text;//显示并关闭连接 ea.visible[i]:=true; ewb.printpreview; ews.Disconnect; ewb.Disconnect; ea.Disconnect; screen.Cursor:=crarrow; > 全面控制 Excel > 首先?建 Excel ?象,使用ComObj:> var ExcelID: Variant;> ExcelID := CreateOleObject( 'Excel.Application' );> 1) 显示当前窗口:> ExcelID.Visible := True;> 2) 更改 Excel Caption:> ExcelID.Caption := '用程序控制 Microsoft Excel';> 3) 添加新工作簿:> ExcelID.WorkBooks.Add;> 4) 打开已存在的工作簿:> ExcelID.WorkBooks.Open( 'C:ExcelDemo.xls' );> 5) 置第2个工作表为活动工作表:> ExcelID.WorkSheets[2].Activate; > 或 > ExcelID.WorksSheets[ 'Sheet2' ].Activate;> 6) 设定单元元格值:> ExcelID.Cells[1,4].Value := '第一行第四列';> 7) 设置指定列的宽度(?位:字符??),以第一列?例:> ExcelID.ActiveSheet.Columns[1].ColumnsWidth := 5;> 8) ?置指定行的高度(?位:磅)(1磅=0.035厘米),以第二行?例:> ExcelID.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米> 9) 在第8行之前插入分?符:> ExcelID.WorkSheets[1].Rows[8].PageBreak := 1;> 10) 在第8列之前?除分?符:> ExcelID.ActiveSheet.Columns[4].PageBreak := 0;> 11) 指定边框高度:> ExcelID.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3;> 1-左 2-右 3-? 4-底 5-斜( ) 6-斜( / )> 12) 清除第一行第四列?元格公式:> ExcelID.ActiveSheet.Cells[1,4].ClearContents;> 13) 设置第一行字体属性:> ExcelID.ActiveSheet.Rows[1].Font.Name := '??';> ExcelID.ActiveSheet.Rows[1].Font.Color := clBlue;> ExcelID.ActiveSheet.Rows[1].Font.Bold := True;> ExcelID.ActiveSheet.Rows[1].Font.UnderLine := True;> 14) ?行?面?置:> a.?眉:> ExcelID.ActiveSheet.PageSetup.CenterHeader := '?表演示';> b.??:> ExcelID.ActiveSheet.PageSetup.CenterFooter := '第&P?';> c.?眉到?端?距2cm:> ExcelID.ActiveSheet.PageSetup.HeaderMargin := 2/0.035;> d.??到底端?距3cm:> ExcelID.ActiveSheet.PageSetup.HeaderMargin := 3/0.035;> e.??距2cm:> ExcelID.ActiveSheet.PageSetup.TopMargin := 2/0.035;> f.底?距2cm:> ExcelID.ActiveSheet.PageSetup.BottomMargin := 2/0.035;> g.左?距2cm:> ExcelID.ActiveSheet.PageSetup.LeftMargin := 2/0.035;> h.右?距2cm:> ExcelID.ActiveSheet.PageSetup.RightMargin := 2/0.035;> i.?面水平居中:> ExcelID.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035;> j.?面垂直居中:> ExcelID.ActiveSheet.PageSetup.CenterVertically := 2/0.035;> k.打印?元格网?:> ExcelID.ActiveSheet.PageSetup.PrintGridLines := True;> 15) 拷?操作:> a.拷?整?工作表:> ExcelID.ActiveSheet.Used.Range.Copy;> b.拷?指定?域:> ExcelID.ActiveSheet.Range[ 'A1:E2' ].Copy;> c.?A1位置?始粘?:> ExcelID.ActiveSheet.Range.[ 'A1' ].PasteSpecial;> d.?文件尾部?始粘?:> ExcelID.ActiveSheet.Range.PasteSpecial;> 16) 插入一行或一列:> a. ExcelID.ActiveSheet.Rows[2].Insert;> b. ExcelID.ActiveSheet.Columns[1].Insert;> 17) ?除一行或一列:> a. ExcelID.ActiveSheet.Rows[2].Delete;> b. ExcelID.ActiveSheet.Columns[1].Delete;> 18) 打印??工作表:> ExcelID.ActiveSheet.PrintPreview;> 19) 打印?出工作表:> ExcelID.ActiveSheet.PrintOut;> 20) 工作表保存:> if not ExcelID.ActiveWorkBook.Saved then> ExcelID.ActiveSheet.PrintPreview;> 21) 工作表另存?:> ExcelID.SaveAs( 'C:ExcelDemo1.xls' );> 22) 放?存?:> ExcelID.ActiveWorkBook.Saved := True;> 23) ??工作簿:> ExcelID.WorkBooks.Close;> 24) 退出 Excel:> ExcelID.Quit; 去51delphi下在控件,在报表浪里,名字我记不的了,很好用。直接在Excel里做好模版,爽呆了 一个三层问题!! 高分请教关于控件继承 odbc可否通过网络调用?我想单机上不用配odbc,而直接用delphi程序调用服务器上的odbc! 女朋友终于要到深圳来了,高兴 我从来没有开发过3层结构的应用程序,应该如何开始呢? 一个BDE问题! 时间限制问题 ~~~~~~~~~~请问这句SQL怎么写?马上给分~~~~~~~~~ dephi程序得到的数据怎么导出到excel表!!!! quickreport报表,多列显示时,怎样控制数据排列的方向(垂直方向优先或水平方向优先)? StringGrid怎么只能在最后一行添加行,而可以删除任意行? Delphi里用来激活可执行程序的函数是什么?
http://expert.csdn.net/Expert/topic/1904/1904163.xml?temp=.9032099
需要servers中的ExcelApplication(ea)、ExcelWorksheet(ews)和ExcelWorkbook(ewb)//连接模版
ea.Connect;
ewb.ConnectTo(ea.workbooks.open(strtable,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam ,emptyparam,emptyparam,emptyparam,emptyparam,i));
ews.connectTo(ewb.activesheet as _worksheet);
//填入表头和表尾
ews.cells.item[4,2].value:=cbyear.text;
ews.cells.item[4,4].value:=cbmonth.text;
ews.Cells.Item[4,1].value:=cbtrade.Text;
//显示并关闭连接
ea.visible[i]:=true;
ewb.printpreview;
ews.Disconnect;
ewb.Disconnect;
ea.Disconnect;
screen.Cursor:=crarrow;
> 全面控制 Excel
> 首先?建 Excel ?象,使用ComObj:
> var ExcelID: Variant;
> ExcelID := CreateOleObject( 'Excel.Application' );
> 1) 显示当前窗口:
> ExcelID.Visible := True;
> 2) 更改 Excel Caption:
> ExcelID.Caption := '用程序控制 Microsoft Excel';
> 3) 添加新工作簿:
> ExcelID.WorkBooks.Add;
> 4) 打开已存在的工作簿:
> ExcelID.WorkBooks.Open( 'C:ExcelDemo.xls' );
> 5) 置第2个工作表为活动工作表:
> ExcelID.WorkSheets[2].Activate;
> 或
> ExcelID.WorksSheets[ 'Sheet2' ].Activate;
> 6) 设定单元元格值:
> ExcelID.Cells[1,4].Value := '第一行第四列';
> 7) 设置指定列的宽度(?位:字符??),以第一列?例:
> ExcelID.ActiveSheet.Columns[1].ColumnsWidth := 5;
> 8) ?置指定行的高度(?位:磅)(1磅=0.035厘米),以第二行?例:
> ExcelID.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米
> 9) 在第8行之前插入分?符:
> ExcelID.WorkSheets[1].Rows[8].PageBreak := 1;
> 10) 在第8列之前?除分?符:
> ExcelID.ActiveSheet.Columns[4].PageBreak := 0;
> 11) 指定边框高度:
> ExcelID.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3;
> 1-左 2-右 3-? 4-底 5-斜( ) 6-斜( / )
> 12) 清除第一行第四列?元格公式:
> ExcelID.ActiveSheet.Cells[1,4].ClearContents;
> 13) 设置第一行字体属性:
> ExcelID.ActiveSheet.Rows[1].Font.Name := '??';
> ExcelID.ActiveSheet.Rows[1].Font.Color := clBlue;
> ExcelID.ActiveSheet.Rows[1].Font.Bold := True;
> ExcelID.ActiveSheet.Rows[1].Font.UnderLine := True;
> 14) ?行?面?置:
> a.?眉:
> ExcelID.ActiveSheet.PageSetup.CenterHeader := '?表演示';
> b.??:
> ExcelID.ActiveSheet.PageSetup.CenterFooter := '第&P?';
> c.?眉到?端?距2cm:
> ExcelID.ActiveSheet.PageSetup.HeaderMargin := 2/0.035;
> d.??到底端?距3cm:
> ExcelID.ActiveSheet.PageSetup.HeaderMargin := 3/0.035;
> e.??距2cm:
> ExcelID.ActiveSheet.PageSetup.TopMargin := 2/0.035;
> f.底?距2cm:
> ExcelID.ActiveSheet.PageSetup.BottomMargin := 2/0.035;
> g.左?距2cm:
> ExcelID.ActiveSheet.PageSetup.LeftMargin := 2/0.035;
> h.右?距2cm:
> ExcelID.ActiveSheet.PageSetup.RightMargin := 2/0.035;
> i.?面水平居中:
> ExcelID.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035;
> j.?面垂直居中:
> ExcelID.ActiveSheet.PageSetup.CenterVertically := 2/0.035;
> k.打印?元格网?:
> ExcelID.ActiveSheet.PageSetup.PrintGridLines := True;
> 15) 拷?操作:
> a.拷?整?工作表:
> ExcelID.ActiveSheet.Used.Range.Copy;
> b.拷?指定?域:
> ExcelID.ActiveSheet.Range[ 'A1:E2' ].Copy;
> c.?A1位置?始粘?:
> ExcelID.ActiveSheet.Range.[ 'A1' ].PasteSpecial;
> d.?文件尾部?始粘?:
> ExcelID.ActiveSheet.Range.PasteSpecial;
> 16) 插入一行或一列:
> a. ExcelID.ActiveSheet.Rows[2].Insert;
> b. ExcelID.ActiveSheet.Columns[1].Insert;
> 17) ?除一行或一列:
> a. ExcelID.ActiveSheet.Rows[2].Delete;
> b. ExcelID.ActiveSheet.Columns[1].Delete;
> 18) 打印??工作表:
> ExcelID.ActiveSheet.PrintPreview;
> 19) 打印?出工作表:
> ExcelID.ActiveSheet.PrintOut;
> 20) 工作表保存:
> if not ExcelID.ActiveWorkBook.Saved then
> ExcelID.ActiveSheet.PrintPreview;
> 21) 工作表另存?:
> ExcelID.SaveAs( 'C:ExcelDemo1.xls' );
> 22) 放?存?:
> ExcelID.ActiveWorkBook.Saved := True;
> 23) ??工作簿:
> ExcelID.WorkBooks.Close;
> 24) 退出 Excel:
> ExcelID.Quit;