导航:
论坛 -> DELPHI技术
斑竹:liumazi,sephil
作者:
diana (diana)
★☆☆☆☆
-
普通会员
2003/11/21 16:40:49
标题:
如何在delphi里面实现excel的插入
浏览:3249
加入我的收藏
楼主:
现在有excel的操作: Range("E4").Select Selection.Insert Shift:=xlToRight 也就是在E4插入一个空格,其他的往右移,不知道在delphi里面语句怎么实现.今天查了很多网站,只有简单的行插入和列插入:ExcelApp.ActiveSheet.Rows[2].insert.可是指定插入一个空格,其他的右移(下移)怎么实现呢? 谢谢
----------------------------------------------
-
作者:
bios (阿贡)
★☆☆☆☆
-
盒子中级会员
2003/11/21 16:59:20
1楼:
偶也想知道!
----------------------------------------------
作者:
2003/11/21 16:59:39
1楼:
ExcelApp.ActiveSheet.Range[4,5].Insert Shift:=xlToRight 行不行?
----------------------------------------------
=^@^=
作者:
bios (阿贡)
★☆☆☆☆
-
盒子中级会员
2003/11/21 17:02:27
2楼:
学习学习!
----------------------------------------------
作者:
diana (diana)
★☆☆☆☆
-
普通会员
2003/11/21 17:15:54
3楼:
这个我已经试过了,语法就不对.
----------------------------------------------
-
作者:
2003/11/21 17:18:49
3楼:
呵呵,错的,应该这样。 ExcelApp.ActiveSheet.Range[4,5].Insert(1); 我测试是这样的 var MyExcel , MyWorkBook , MyWorkSheet , MyRange: Variant; begin MyExcel := CreateOLEObject('Excel.Application'); MyWorkBook := MyExcel.WorkBooks.Add; MyWorkSheet := MyExcel.WorkBooks[1].WorkSheets[1]; MyRange := MyExcel.WorkBooks[1].WorkSheets[1].Range['A1']; MyWorkSheet.Name := '交易记录'; MyWorkSheet.Cells[1,1] := 'A1'; MyWorkSheet.Cells[1,2] := 'B1'; MyWorkSheet.Cells[1,3] := 'C1'; MyWorkSheet.Cells[2,1] := 'A2'; MyWorkSheet.Cells[2,2] := 'B2'; MyWorkSheet.Cells[2,3] := 'C2'; MyWorkSheet.Cells[3,1] := 'A3'; MyWorkSheet.Cells[3,2] := 'B3'; MyWorkSheet.Cells[3,3] := 'C3'; MyRange.Insert('1'); If SaveDialogMaster.Execute Then Begin If UpperCase(RightStr(SaveDialogMaster.FileName,4)) = '.XLS' Then Begin MyWOrkBook.SaveAs(SaveDialogMaster.FileName); End Else Begin MyWOrkBook.SaveAs(SaveDialogMaster.FileName+'.xls'); End; End; MyExcel.DisplayAlerts := False; MyWorkBook.Close; MyExcel.Quit;
----------------------------------------------
=^@^=
作者:
2003/11/21 17:21:08
4楼:
活动单元格右移 MyRange.Insert('1'); 活动单元格下移 MyRange.Insert('2'); 整行 MyRange.Insert('3'); 整列 MyRange.Insert('4');
----------------------------------------------
=^@^=
作者:
diana (diana)
★☆☆☆☆
-
普通会员
2003/11/21 17:28:28
5楼:
太感谢了,以为今天搞不定了,正郁闷呢. 谢谢指教:)
----------------------------------------------
-
作者:
2003/11/21 20:34:17
6楼:
互相学习。
----------------------------------------------
=^@^=
作者:
bios (阿贡)
★☆☆☆☆
-
盒子中级会员
2003/11/21 20:42:31
7楼:
强烈学习!
----------------------------------------------
作者:
diana (diana)
★☆☆☆☆
-
普通会员
2003/11/22 9:12:21
8楼:
bios光打雷不下雨:p
----------------------------------------------
-
作者:
bios (阿贡)
★☆☆☆☆
-
盒子中级会员
2003/11/22 9:48:13
9楼:
是啊偶不会啊 所以要虚心向你学习!
----------------------------------------------
作者:
bios (阿贡)
★☆☆☆☆
-
盒子中级会员
2003/11/22 9:51:36
10楼:
那么请你帮偶一个忙了:谢谢! 问题看这里: http://www.516688.net/bios/tiwen1.htm
----------------------------------------------
作者:
2003/11/22 11:43:32
11楼:
全面控制 Excel 首先创建 Excel 对象,使用ComObj: var ExcelID: Variant; ExcelID := CreateOleObject( 'Excel.Application' ); 1) 显示当前窗口: ExcelID.Visible := True; 2) 更改 Excel 标题栏: ExcelID.Caption := '应用程序调用 Microsoft Excel'; 3) 添加新工作簿: ExcelID.WorkBooks.Add; 4) 打开已存在的工作簿: ExcelID.WorkBooks.Open( 'C:\Excel\Demo.xls' ); 5) 设置第2个工作表为活动工作表: ExcelID.WorkSheets[2].Activate; 或 ExcelID.WorksSheets[ 'Sheet2' ].Activate; 6) 给单元格赋值: ExcelID.Cells[1,4].Value := '第一行第四列'; 7) 设置指定列的宽度(单位:字符个数),以第一列为例: ExcelID.ActiveSheet.Column[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:\Excel\Demo1.xls' ); 22) 放弃存盘: ExcelID.ActiveWorkBook.Saved := True; 23) 关闭工作簿: ExcelID.WorkBooks.Close; 24) 退出 Excel: ExcelID.Quit;
----------------------------------------------
作者:
bios (阿贡)
★☆☆☆☆
-
盒子中级会员
2003/11/22 12:35:15
12楼:
同意证明! 偶讨厌恶魔! “万恶淫为首,百字孝当头!”
----------------------------------------------
作者:
diana (diana)
★☆☆☆☆
-
普通会员
2003/11/22 13:21:51
13楼:
首先bios同意证明 那么bios同意姑娘=恶魔 还有bios 讨厌恶魔 那么bios讨厌姑娘. bios喜欢男人 又男人喜欢男人= gay 那么bios=gay
----------------------------------------------
-
作者:
bios (阿贡)
★☆☆☆☆
-
盒子中级会员
2003/11/22 13:38:18
14楼:
嘿 帮忙: 这学期每一组的课程设计都这么难!怎么办? 在网络上还没有没有象样的产品:只有功能介绍: http://www.cltess.com/html/sign.htm 偶这一组是《电子公章》就是说在 1)WORD文档中嵌入一个半透明的 悬浮公章, 2)用硬件watchsafe中的公钥对 公章加密,锁定这个文档 不被非法修改 硬件接口的DLL是这样的: #ifdef __cplusplus extern "C"{ #endif int WQOpenUsbKey(void); int WQCloseUsbKey(void); int WQVerifyUserPin(LPTSTR password,short len); int WQGetCertFromUsb(LPBYTE cert,LPDWORD certlen); int WQSignWithUsbKey(unsigned char *from,int len, BYTE Hash_AlgID,unsigned char *to,int *outlen); int WQDecryptWithUsbPrivateKey(unsigned char *from,int len, unsigned char *to,int *outlen); int WQDecryptWithUsbKey(unsigned char *from,int len, unsigned char *to,int *outlen); int VerifySignWithCertFile(unsigned char *from,int len, unsigned char *origndata,int datalen,BYTE Hash_AlgID); int EncryptWithCertPublicKey(unsigned char *from,int len,unsigned char *to,int *outlen); int EncryptWithCert(unsigned char *from,int len,unsigned char *to,int *outlen); #ifdef __cplusplus } #endif 对于签章函数的int WQSignWithUsbKey(unsigned char *from,。。。) 的第一个参数显然要求 WORD文档的 文件流,那要如何获得呢?
----------------------------------------------