DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: xzzjr
今日帖子: 12
在线用户: 9
导航: 论坛 -> 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楼: 偶也想知道!
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 zsredmoon (=^@^=) ★☆☆☆☆ -
盒子活跃会员
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楼: 这个我已经试过了,语法就不对.
----------------------------------------------
-
作者:
男 zsredmoon (=^@^=) ★☆☆☆☆ -
盒子活跃会员
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;
----------------------------------------------
按此在新窗口浏览图片
=^@^=
作者:
男 zsredmoon (=^@^=) ★☆☆☆☆ -
盒子活跃会员
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楼: 太感谢了,以为今天搞不定了,正郁闷呢.
谢谢指教:)
----------------------------------------------
-
作者:
男 zsredmoon (=^@^=) ★☆☆☆☆ -
盒子活跃会员
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
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 cwh_weihuang (cwh_weihuang) ★☆☆☆☆ -
盒子活跃会员
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文档的 文件流,那要如何获得呢?
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行85.9375毫秒 RSS