特别推荐:纯VB.NET代码直接生成Excel文件(不需要Excel)

几年前看见一VB6代码,直接生成Excel文件(不需要Excel),最近把它改写成VB.NET,支持简体中文。

原理:根据以公开的BIFF2.1文件格式,直接Binary写Excel文件。

效果:

下载:http://files.cnblogs.com/unruledboy/Smart%20Excel%20Lib.zip

另外,鞠强网友写了一个C#版本:http://www.cnblogs.com/juqiang/archive/2004/07/08/22255.aspx

http://files.cnblogs.com/unruledboy/smartexcel.rar
posted @ 2004-07-07 16:11 灵感之源 阅读(33586) 评论(63)  编辑 收藏 网摘 所属分类: 2.技术交流

  回复  引用  查看    
#1楼 2004-07-07 16:20 | 郑彬      
真是牛比,我想要C#的,不知道有没有,我搞不懂VB转换到C#的方法。
  回复  引用  查看    
#2楼 2004-07-07 16:22 | myrat      
还没仔细看,第一感觉是,太厉害了
楼上的试试看vb->c# converter吧

  回复  引用  查看    
#3楼 2004-07-07 16:27 | unruledboy(灵感之源)      
vb.net->C#的工具很多,SharpDevelop最新版本可以
  回复  引用  查看    
#4楼 2004-07-07 21:53 | steeven      
什么原理啊?贴了一堆代码,懒得看呀 :$
  回复  引用  查看    
#5楼 2004-07-07 22:03 | Threading      
是不是已知Excel的文件格式啊。
  回复  引用  查看    
#6楼 2004-07-08 09:58 | zhaixd      
不好意思,给你9分的,点错到1分上面去了
  回复  引用  查看    
#7楼 2004-07-08 10:05 | unruledboy(灵感之源)      
没有问题,再点一次9就好;)
  回复  引用  查看    
#8楼 2004-08-26 17:11 | Loki      
跟用模版相比,数据插入和格式化会不会更麻烦?
  回复  引用  查看    
#9楼 2004-08-27 19:55 | birdshome      
这个BIFF2.1太old,好像不支持边框效果,还有合并单元格不知道行不行?
  回复  引用  查看    
#10楼 2004-09-23 10:28 | 胡明      
大伙有没有试过用C#操作Excel COM来生成各种数据图形的呢,最近我一直在研究,不过没有什么头绪,只好先从微软站点上下载一个VBA来看看,希望从中能找到一点思路。
  回复  引用  查看    
#11楼 2004-10-14 11:24 | mys      
我用C#写了个调用Excel com 来生成Excel文件的程序,已经成功了(没有用模板)但是excel进程杀不了!!郁闷啊!!!有人知道杀Excel进程吗?
  回复  引用  查看    
#12楼 [楼主]2004-10-14 11:40 | 灵感之源      
问博客堂的lostinnet吧。他实现过。
  回复  引用  查看    
#13楼 2004-10-15 09:33 | Jack      
用Dcomcnfg杀进程
  回复  引用  查看    
#14楼 2004-11-07 09:45 | 春天水中的鱼      
你还真厉害。怎么用C#生成模板?
  回复  引用  查看    
#15楼 2004-11-28 18:14 | soaring      
好像ASP.NET下使用无效
  回复  引用  查看    
#16楼 2005-01-21 13:34 | wf      
纯VB.NET代码直接生成word怎么做???
  回复  引用  查看    
#17楼 2005-03-17 14:05 | Danny      
很牛~

我在用你的代码,不会追究我的责任吧?呵呵~

  回复  引用  查看    
#18楼 2005-03-22 16:09 | zhou      
为什么我用时,字符串少的时候导入没有问题,字符串200多字以上时,excel里边没有任何字符。为什么啊???????????????????????????????????????????
  回复  引用  查看    
#19楼 2005-03-23 16:35 | qhcyx      
上面的大虾,怎么可以不用模板,用C#就生成excel?
  回复  引用  查看    
#20楼 2005-04-03 00:01 | deli      
哦!这个好方法,.net 现在还是不错的!!
  回复  引用  查看    
#21楼 2005-04-07 15:12 | yinh      
今天正好要用到写excel的,顺便就看了看。但是可能不符合我的要求,因为我想写一个拥有多个sheet的excel文件,不知道这个组件可不可以做到。

  回复  引用  查看    
#22楼 2005-04-09 18:32 | David,Qi      
我写了个可以一个拥有多个sheet的XML文件(可以用Excel2003,XP等打开,完全不用Excel,而是直接写入到XML)但是客户使用的还是Office97,不知如何将XML再转换为XLS。不知哪位有高见。

纯VB.NET代码直接生成Excel文件(不需要Excel)的方法不支持合并单元格、Formula Cell 以及多Sheet.

目前的Excel文件格式远比BIFF2.1复杂。




  回复  引用  查看    
#23楼 2005-04-13 23:19 | wildfish      
谢谢你的smartexcel,虽然我用的是c#版的,也感谢那位仁兄:)

  回复  引用  查看    
#24楼 2005-05-30 16:09 | ttyp      
  回复  引用  查看    
#25楼 2005-06-03 09:34 | 心雨      
  回复  引用    
#26楼 2005-07-08 16:48 | 雅雅 [未注册用户]
如果能够像owc10一样能支持Sql语句绑定数据就更好了
  回复  引用    
#27楼 2005-07-19 08:36 | xiaobetter [未注册用户]
先说一声谢谢啦,vb.net真的很喜欢。希望我也能有Aganippe
  回复  引用    
#28楼 2005-07-19 21:12 | jieson [未注册用户]
如果要设置字体颜色可以做到吗?我正在想如何解决这个问题:(
  回复  引用    
#29楼 2005-08-24 15:48 | feng [未注册用户]
问:如何合并单元格呢?
  回复  引用    
#30楼 2005-09-23 15:34 | 11 [未注册用户]
怎么添加公式
  回复  引用    
#31楼 2005-09-25 22:06 | hello [未注册用户]
作为一个业余使用者请教一下
我学经济管理的,在公司主要做计划和报表,一直使用Word & Excel就能完成工作。今年领导安排给我一个新任务,统计和分析预算量。好像Excel不能完成这样的工作。如果必须学习编程语言的话VB.NET,C#.NET,JAVA,C++哪一个容易学?原来的计算机编程知识都还给老师了。:)
看了众多的帖子,好像VB.NET没有C#.NET专业,而且不是主流语言?(朋友说C++和JAVA才是主流)我主要考虑容易学习,方便使用。不在乎程序的执行效率。我怎么选择呀?VB.NET,C#.NET,JAVA,C++? 谢谢啦!! (顺便问一下,VB.NET2005是不是更加容易学习啦?)

我的联系方式: lj110104@msn.com

  回复  引用  查看    
#32楼 2005-10-14 14:14 | 坐看云起      
把六合彩广告删了吧。过分了。
  回复  引用    
#33楼 2005-10-31 18:29 | BabyGrilTany [未注册用户]
什么都看不到~ :(
  回复  引用    
#34楼 2005-11-13 15:32 | 黄二爷 [未注册用户]
哥们,用你这个代码我遇到一个问题,就是"®"等特殊字符写到excel中就变成了问号了,这个有什么办法可以解决,谢谢
  回复  引用  查看    
#35楼 2006-02-15 11:25 | 不会飞的鱼      
强人啊, 顶一个!!
  回复  引用    
#36楼 2006-03-30 14:18 | smilewu [未注册用户]
我用反射方法,通过后期绑定,可以动态实现操作Execl!
是用纯C#实现的,实现的功能很多!
有需要的可以联系我!

  回复  引用    
#37楼 2006-03-31 23:42 | mksoft [未注册用户]
@smilewu

有问题想请教你,你都没有联系方式

  回复  引用    
#38楼 2006-04-12 00:07 | 蓝天 [未注册用户]
恳请赐教!!
  回复  引用    
#39楼 2006-04-26 02:41 | linruibin [未注册用户]
@smilewu
谢谢你,我正急用向Excel中输入数据。我用的是C# ,office2003,不知道怎么引用COM组件,我在里面找不到,谢谢赐教
我的邮箱ruibinlin@yahoo.com.cn


  回复  引用    
#40楼 2006-05-09 10:15 | little ge [未注册用户]
请问可以给我vb的源码吗?
gelinqing@gmail.com

  回复  引用    
#41楼 2006-05-31 15:01 | jiemupig [未注册用户]
可以实现工作簿中创建多个工作表吗.
  回复  引用    
#42楼 2006-06-19 10:41 | luoyuhua_2000 [未注册用户]
请问你的那个VB6的代码是在那儿可以下呢,或者能不能邮一份给我,我的邮箱
luoyuhua_2000@163.com

  回复  引用    
#43楼 2006-07-07 09:26 | 辛 [未注册用户]
不错,慢慢研究
  回复  引用    
#44楼 2006-07-19 14:17 | zyb [未注册用户]
可以生成复杂的Excel表吗?就是合并单元格和加底色等等。
  回复  引用    
#45楼 2006-07-19 14:17 | zyb [未注册用户]
可以生成复杂的Excel表吗?就是合并单元格和加底色等等。
zhaiyabin@126.com

  回复  引用    
#46楼 2006-07-19 14:17 | zyb [未注册用户]
可以生成复杂的Excel表吗?就是合并单元格和加底色等等。
zhaiyabin@126.com

  回复  引用    
#47楼 2006-07-24 16:10 | zhanggang [未注册用户]
可以给我vb的代码吗,万分感激!
springsimba@163.com

  回复  引用    
#48楼 2006-08-24 21:56 | rockylee [未注册用户]
什么都看不到啊。
  回复  引用    
#49楼 2006-09-11 14:00 | zyb [未注册用户]
如何使用这个控件进行模板生成?[可以实现吗?]
  回复  引用    
#50楼 2006-09-11 20:21 | ldd [未注册用户]
@smilewu
您好:您在论坛上说您用的反射方法生成的execl文件,能否指教一下
我的邮箱:lddyuhb@163.com

  回复  引用    
#51楼 2006-09-25 17:23 | EXCEL4.0 [未注册用户]
long c=0; char s[100]; __int8 b=0x0; __int16 w=0x0; div_t pt;
unsigned short XLSBOF[5] = {0x409, 6, 0, 0x10, 0};
unsigned short XLSGUTS[6] = {0x80, 8, 0, 0, 0, 0};
unsigned short XLSPalette[3] = {0x92, 54, 13};

unsigned char XLSFONT[10] = {0x31, 2, 0, 0, 0, 0, 0, 0, 0, 0};
unsigned char XLSFONTH[10] = {0x31, 2, 0, 0, 0, 0, 0, 0, 8, 0};
unsigned char XLSFONTG[10] = {0x31, 2, 0, 0, 0, 0, 0, 0, 10, 0};
unsigned char XLSSFont[16]={0x31, 2, 0x0C, 0, 0xC8, 0, 0, 0, 0xFF, 0x7F, 5, 0x41, 0x72, 0x69, 0x61, 0x6C};

unsigned char XLSXF1[16]={0x43, 4, 0x0C, 0, 0, 0, 0xF5, 0xFF, 0x20, 0, 0, 0xCE, 0, 0, 0, 0};
unsigned char XLSXF2[16]={0x43, 4, 0x0C, 0, 1, 0, 0xF5, 0xFF, 0x20, 0xF4, 0, 0xCE, 0, 0, 0, 0};
unsigned char XLSXF3[16]={0x43, 4, 0x0C, 0, 2, 0, 0xF5, 0xFF, 0x20, 0xF4, 0, 0xCE, 0, 0, 0, 0};
unsigned char XLSXF4[16]={0x43, 4, 0x0C, 0, 0, 0, 0xF5, 0xFF, 0x20, 0xF4, 0, 0xCE, 0, 0, 0, 0};
unsigned char XLSXF5[16]={0x43, 4, 0x0C, 0, 0, 0, 1, 0, 0x20, 0, 0, 0xCE, 0, 0, 0, 0};
unsigned char XLSXF6[16]={0x43, 4, 0x0C, 0, 1, 0x21, 0xF5, 0xFF, 0x20, 0xF8, 0, 0xCE, 0, 0, 0, 0};
unsigned char XLSXF7[16]={0x43, 4, 0x0C, 0, 1, 0x1F, 0xF5, 0xFF, 0x20, 0xF8, 0, 0xCE, 0, 0, 0, 0};
unsigned char XLSXF8[16]={0x43, 4, 0x0C, 0, 1, 0x20, 0xF5, 0xFF, 0x20, 0xF8, 0, 0xCE, 0, 0, 0, 0};
unsigned char XLSXF9[16]={0x43, 4, 0x0C, 0, 1, 0x1E, 0xF5, 0xFF, 0x20, 0xF8, 0, 0xCE, 0, 0, 0, 0};
unsigned char XLSXF10[16]={0x43, 4, 0x0C, 0, 1, 0x0D, 0xF5, 0xFF, 0x20, 0xF8, 0, 0xCE, 0, 0, 0, 0};

unsigned char XLSXF[16] = {0x43, 4, 0x0C, 0, 5, 0, 1, 0, 0x21, 0x78, 0x41, 3, 0, 0, 0, 0};
unsigned char XLSXFB[16] = {0x43, 4, 0x0C, 0, 8, 0, 1, 0, 0x22, 0x78, 0x41, 2, 0x71, 0x71, 0x71, 0};
unsigned char XLSXFH[16] = {0x43, 4, 0x0C, 0, 6, 0, 1, 0, 0x22, 0x78, 0x41, 2, 0x71, 0x71, 0x71, 0x71};
unsigned char XLSXFG[16] = {0x43, 4, 0x0C, 0, 7, 0, 1, 0, 0x21, 0x78, 0xC1, 2, 0, 0, 0, 0};
unsigned char XLSXFF[16] = {0x43, 4, 0x0C, 0, 5, 0, 1, 0, 0x22, 0x78, 0xC1, 2, 0xB9, 0xB9, 0xB9, 0xB9};
unsigned char XLSXFF1[16] = {0x43, 4, 0x0C, 0, 5, 0, 1, 0, 0x22, 0x78, 0xC1, 2, 0xB9, 0, 0xB9, 0};
unsigned char XLSXFRF[16] = {0x43, 4, 0x0C, 0, 9, 0, 1, 0, 0x21, 0x78, 0xC1, 2, 0xB9, 0xB9, 0xB9, 0xB9};
unsigned char XLSXFRF1[16] = {0x43, 4, 0x0C, 0, 9, 0, 1, 0, 0x21, 0x78, 0xC1, 2, 0xB9, 0, 0xB9, 0};

unsigned short XLSDimension[7] = {0x200, 0x0A, 0, 0xFFFF, 0, 0xFF, 0};

unsigned short XLSCOL[8] = {0x7D, 0x0C, 0, 0, 0, 0xF, 0, 0};
unsigned short XLSLabel[6] = {0x204, 0, 0, 0, 0, 0};
unsigned short XLSBlank[5] = {0x201, 6, 0, 0, 0x17};
unsigned short XLSBlankF[5] = {0x201, 6, 0, 0, 0x19};
unsigned short XLSBlankRF[5] = {0x201, 6, 0, 0, 0x1C};
unsigned short XLSNumber[5] = {0x203, 14, 0, 0, 0};
unsigned short XLSRK[5] = {0x27E, 10, 0, 0, 0};
unsigned short XLSFormula[16] ={0x406, 0x1D, 0, 0, 0x18, 0, 0, 0, 0, 3, 0x0B, 0x25, 0, 0, 0, 0};

unsigned short XLSEOF[2] = {0x0A, 0};


  回复  引用    
#52楼 2006-09-25 17:24 | EXCEL4.0 [未注册用户]
FILE* fh;
if ( (fh=fopen("E:\\COM\\Delphi\\bak\\Excel4\\1.xls","w+b")) == NULL)
{
break;
}
fwrite(XLSBOF,2,5,fh);//10
fwrite(XLSGUTS,2,6,fh);//12
fwrite(XLSPalette,2,3,fh);//6
//颜色 (RGB) 每色占2位
//0xFFFFFF 白色
//0x000000 黑色
c=0xFF0202; fwrite(&c,4,1,fh);//4 HeaderFont.Color 首行 字体 蓝色
c=0x007D7D; fwrite(&c,4,1,fh);//4 HeaderColor 底部 深黄绿色

c=0x000000; fwrite(&c,4,1,fh);//4 GroupNodeTextColor 尾行 字体 嘿色
c=0xFF8080; fwrite(&c,4,1,fh);//4 GroupNodeColor 底部 紫色

c=0x000000; fwrite(&c,4,1,fh);//4 Font.Color 数据 字体 嘿色
c=0xDFFFFF; fwrite(&c,4,1,fh);//4 Color 底部 土黄色

c=0x000000; fwrite(&c,4,1,fh);//4 clWindowFrame
c=0xFFFFFF; fwrite(&c,4,1,fh);//4 clWindow
c=0x000000; fwrite(&c,4,1,fh);//4 BandFont.Color
c=0xFFFFFF; fwrite(&c,4,1,fh);//4 BandColor
c=0x000000; fwrite(&c,4,1,fh);//4 RowFooterTextColor
c=0xFFFFFF; fwrite(&c,4,1,fh);//4 RowFooterColor
c=0x000000; fwrite(&c,4,1,fh);//4 GridLineColor
// EXCEL Font 系统默认字体
fwrite(XLSSFont,1,16,fh);//16
fwrite(XLSSFont,1,16,fh);//16
fwrite(XLSSFont,1,16,fh);//16
fwrite(XLSSFont,1,16,fh);//16
// Grid Font
// 底部字体 18
{
wsprintf(s,"Microsoft Sans Serif");
b=__int8(strlen(s));
pt=div( 12*20,256 ); //12磅字体
XLSFONT[2] = b+7;
XLSFONT[4] = pt.rem;
XLSFONT[5] = pt.quot;
XLSFONT[6] = 1; //粗体
XLSFONT[8] = 12;
fwrite(XLSFONT,1,10,fh);
fwrite(&b,1,1,fh);
fwrite(s,1,b,fh);
}
//
// 设定列头(行顶部)字体 单元格(0,0)
// XLSFONT[6]值 ( 0正常体 1粗体 2斜体 4底线 8叉线 )
{
wsprintf(s,"Arial");
b=__int8(strlen(s));
pt=div( 16*20,256 ); //12磅字体
XLSFONTH[2] = b+7;
XLSFONTH[4] = pt.rem;
XLSFONTH[5] = pt.quot;
XLSFONTH[6] = 1; //粗体
fwrite(XLSFONTH,1,10,fh);
fwrite(&b,1,1,fh);
fwrite(s,1,b,fh);
}
// Group Font
{
wsprintf(s,"Microsoft Sans Serif");
b=__int8(strlen(s));
pt=div( 8*20,256);
XLSFONTG[2] = b+7;
XLSFONTG[4] = pt.rem;
XLSFONTG[5] = pt.quot;
XLSFONTG[6] = 1;
fwrite(XLSFONTG,1,10,fh);
fwrite(&b,1,1,fh);
fwrite(s,1,b,fh);
}
// Band Font
{
wsprintf(s,"MS Gothic");
b=__int8(strlen(s));
pt=div( 8*20,256 );
XLSFONT[2] = b+7;
XLSFONT[4] = pt.rem;
XLSFONT[5] = pt.quot;
XLSFONT[6] = 1;
XLSFONT[8] = 16;
fwrite(XLSFONT,1,10,fh);
fwrite(&b,1,1,fh);
fwrite(s,1,b,fh);
}
// Footer Font
{
wsprintf(s,"Modern");
b=__int8(strlen(s));
pt=div(160,256);
XLSFONT[2] = b+7;
XLSFONT[4] = pt.rem;
XLSFONT[5] = pt.quot;
XLSFONT[6] = 1;
XLSFONT[8] = 18;
fwrite(XLSFONT,1,10,fh);
fwrite(&b,1,1,fh);
fwrite(s,1,b,fh);
}
//
// 设定每列字体
// XLSFONT[6]值 ( 0正常体 1粗体 2斜体 4底线 8叉线 )
int i;
for( i=0;i<3;i++)
{
wsprintf(s,"Sylfaen");
b=__int8(strlen(s));
XLSFONT[2] = b+7;
pt=div(10*20,256); //10磅字体
XLSFONT[4] = pt.rem;
XLSFONT[5] = pt.quot;
XLSFONT[6] = 0; //正常体
XLSFONT[8] = 12;
fwrite(XLSFONT,1,10,fh);
fwrite(&b,1,1,fh);
fwrite(s,1,b,fh);
}

  回复  引用    
#53楼 2006-09-25 17:25 | EXCEL4.0 [未注册用户]
fwrite(XLSXF1,1,16,fh);
fwrite(XLSXF2,1,16,fh);
fwrite(XLSXF2,1,16,fh);
fwrite(XLSXF3,1,16,fh);
fwrite(XLSXF3,1,16,fh);
for(i=0;i<10;i++)
{
fwrite(XLSXF4,1,16,fh);
}
fwrite(XLSXF5,1,16,fh);
fwrite(XLSXF6,1,16,fh);
fwrite(XLSXF7,1,16,fh);
fwrite(XLSXF8,1,16,fh);
fwrite(XLSXF9,1,16,fh);
fwrite(XLSXF10,1,16,fh);
XLSXF[12]=0xA7; //0xA7 细点线 0xA1线
XLSXF[13]=0xA7; //0xA7 细点线 0xA1线
XLSXF[14]=0xA7; //0xA7 细点线 0xA1线
XLSXF[15]=0xA7; //0xA7 细点线 0xA1线
fwrite(XLSXF,1,16,fh);
fwrite(XLSXFH,1,16,fh);
fwrite(XLSXFG,1,16,fh);
fwrite(XLSXFF,1,16,fh);
fwrite(XLSXFF1,1,16,fh);
fwrite(XLSXFB,1,16,fh);
fwrite(XLSXFRF,1,16,fh);
fwrite(XLSXFRF1,1,16,fh);
//
// 设定每列对齐方式
// XLSXF[8]取值 ( 左=0x21 中=0x22 右=0x23 )
for (i=0;i<3;i++)
{
XLSXF[4] = i+10;
if (i==2)
{
XLSXF[8] = 0x23; //置中
}
else
{
XLSXF[8] = 0x21; //置左
}
fwrite(XLSXF,1,16,fh);
}
//
// 设定每列宽度
// XLSCOL[4]取值 36 * 每列宽度
for(i=0;i<3;i++)
{
XLSCOL[2] = i;
XLSCOL[3] = i;
XLSCOL[4] = 36*220; //列宽150
fwrite(XLSCOL,2,8,fh);
}
fwrite(XLSDimension,2,7,fh);
//
// 写入每列头部 可以省略
for(i=0;i<3;i++)
{
_itoa( rand() ,s,16);
w=(__int16)strlen(s);
XLSLabel[1] = w+8;
XLSLabel[2] = 0; //行数 第一行
XLSLabel[3] = i; //列数
XLSLabel[4] = 0x16 ;
XLSLabel[5] = w;
fwrite(XLSLabel,2,6,fh);
fwrite(s,1,w,fh);
}
// 写入记录值 可以省略
//char字符串
for(int i=1;i<50;i++)
{
wsprintf(s,"二进制 ");
_itoa( rand() ,&s[7],2);
w=(__int16)strlen(s);
XLSLabel[1] = w+8;
XLSLabel[2] = i; //行数
XLSLabel[3] = 0; //列数
XLSLabel[4] = 0x1D+0;
XLSLabel[5] = w;
fwrite(XLSLabel,2,6,fh);
fwrite(s,1,w,fh);
}
//Double双精度
double f;
for(int i=1;i<50;i++)
{
f=rand()/3.2;
XLSNumber[2]=i; //行数
XLSNumber[3]=1; //列数
XLSNumber[4]=0x1D+1;
fwrite(XLSNumber,2,5,fh);
fwrite(&f,8,1,fh);
}
//int数值
__int32 nt;
for(int i=1;i<50;i++)
{
nt=rand();
nt<<=2;
nt+=2;
XLSRK[2]=i; //行数
XLSRK[3]=2; //列数
XLSRK[4]=0x1D+2;
fwrite(XLSRK,2,5,fh);
fwrite(&nt,4,1,fh);
}
/**/
_itoa( rand() ,s,16);
w=(__int16)strlen(s);
XLSLabel[1] = w+8;
XLSLabel[2] = 55; //行数 第一行
XLSLabel[3] = 2; //列数
XLSLabel[4] = 0x18 ;
XLSLabel[5] = w;
fwrite(XLSLabel,2,6,fh);
fwrite(s,1,w,fh);
//Excel End
fwrite(XLSEOF,2,2,fh);
fclose(fh);

  回复  引用    
#54楼 2006-09-25 17:27 | EXCEL4.0 [未注册用户]

这是Delphi下 dxDBGrid 实现方法

转换成C语法的实现

请将上面3个部分合在一起 用VC ,BC 编译即可

EXCEL 2000版的还在研究中

  回复  引用    
#55楼 2006-09-25 17:34 | EXCEL4.0 [未注册用户]
http://www.freevbcode.com/ShowCode.asp?ID=6856

上面地址是VB代码的实现 支持 EXCEL 97 2000版本

同时可以实现合病格格等等


  回复  引用    
#56楼 2007-01-22 11:23 | Now [未注册用户]
上面地址是VB代码的实现 支持 EXCEL 97 2000版本

但当生成含有中文的字符时,出现乱码,不支持中文,如何解决????????

  回复  引用    
#57楼 2007-03-29 10:21 | DATE [未注册用户]
怎么预览打印呀,,
  回复  引用  查看    
#58楼 2007-05-19 19:20 | bearhunter      
good
  回复  引用    
#59楼 2007-09-28 13:13 | 等待 [未注册用户]
写的不错啊http://www.baidu.com/
  回复  引用    
#60楼 2007-11-15 19:08 | 地方 [未注册用户]
请问文件超过65535行,如何处理啊?
  回复  引用    
#61楼 2008-09-03 09:04 | litterhaw [未注册用户]
@hello
你用VBA啊,直接在Word、Excel里操作,去市面买本书就是了。

  回复  引用  查看    
#62楼 2008-09-12 14:42 | 徐文兵      
又是一个Hello Word !

发表评论



姓名 [登录] [注册] 
主页
Email (仅博主可见) 
验证码 *  验证码看不清,换一张
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论   新用户注册   返回页首      

导航: 网站首页 社区 新闻 博问 闪存 网摘 招聘 .NET频道 知识库 找找看 Google站内搜索



China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
China-Pub 计算机绝版图书按需印刷服务

相关文章:

相关链接: