posts - 2, comments - 0, trackbacks - 0, articles - 0

2006年9月23日

用C#生成Excel文件的方法和Excel.dll组件生成的方法

一个示例:

class AppTest
 {
  private Excel.ApplicationClass _x;
  public static void Main0()
  {
   AppTest a = new AppTest();
   a._x = new Excel.ApplicationClass();
   a._x.UserControl = false;
   for (int i = 0 ;i < 4; i++)
   {
    
    a.SaveToXls("D:\\test\\" + i + ".xls");  // 本例是在D盘下建立的test文件夹
   }
   a._x.Quit();
   System.Runtime.InteropServices.Marshal.ReleaseComObject((object) a._x);
   System.GC.Collect();
  }

  private void SaveToXls(string filename)
  {
   Excel.WorkbookClass wb = (Excel.WorkbookClass) this._x.Workbooks.Add(System.Reflection.Missing.Value);
   for(int i = 1;i <= 4; i++)
   {
    this._x.Cells[i,1]=i.ToString();
    this._x.Cells[i,2]="'bbb2";
    this._x.Cells[i,3]="'ccc3";
    this._x.Cells[i,4]="'aaa4";
   }
   
   wb.Saved = true;
   this._x.ActiveWorkbook.SaveCopyAs(filename);
  }
 }

【注:在VS.Net中运行是要添加Excel.dll组件的,Excel组件VS.Net本身是没有的,下面是生成Excel.dll的方法。】

1.要保证机器本身要安装OFFICE.

2.把[C:\Program Files\Microsoft Office\Office:默认安装路径]下的EXCEL9.OLB文件拷贝到[C:\Visual Studio.Net\SDK\v1.1\Bin:VS.Net安装路径]路径下。

3.打开Visual Studio .Net2003命令提示,运行TlbImp Excel9.olb Excel.dll ,就会在[C:\Visual Studio.Net\SDK\v1.1\Bin]下生成Excel.dll组件。

4.在项目中添加Excel.dll引用就OK了。

posted @ 2006-09-23 11:17 spring21st 阅读(241) | 评论 (0)编辑 收藏

2006年4月7日

源贴地址:

C#: Yesterday, Today, and Tomorrow: An Interview with Anders Hejlsberg, Part 2
C#: Yesterday, today, and tomorrow

作者 John Osborn
10/17/2005

Anders Hejlsberg

1996 年加入微软 开始是 Visual J++ Windows Foundation Classes 的架构师。Hejlsberg 是目前微软杰出的工程师和C#语言的设计者,并在微软 .NET 框架中扮演了重要的角色。今天,他正在领导C#语言的开发工作。John Osborn,是O Reilly 媒体公司的执行编辑,负责公司在.NET和其他微软开发者书籍的工作,最近和Hejlsberg碰面进行了下面广泛的会谈。

Osborn: 我想我最好还是跳回到 2000 年我们上次聊天的地方。重新复习上次的对话,对我来说是很有趣的。那时,我们曾经被java痴迷,C#语言和java的对比当时也非常的多。

Hejlsberg: 是这样的。

Osborn: 从那是起 五年过去了 C# 现在怎么样了 你现在对语言有什么想法吗 C# 是微软唯一的工具吗 是否在社区里有一个很宽的领域

Hejlsberg: 是这样的。这几年发生了很多事情 世界的发展看起来和当时非常不同 特别是从一个竞争的观点来看。我们没有让.NET和java变得更新,更流行。因此,这里有很多比较可以做。我想在过去的五年里,C#已经成长起来了。今天,我们来说说C# 3.0 我们刚刚发布了 C# 2.0 ,在这之前是 1.0 和 1.1 的版本。

我们考虑跟踪研究 从使用方式上看 .NET 看起来和 java 有着非常相似的应用。C#的应用更多一些。因此,相对于一个新语言,C#已经成长起来了。很显然,我非常高兴看到这种情况。在.NET和java平台上有着很多明显的不同。我的意思是首先.NET是windows的开发平台。这让你有了一个不同的商业策略。现在,你也知道,我们正在着手进行C#的标准化和. NET框架的核心工作。现在实际上已经有了C# 3.0 的一个标准版本了。 ECMA-334 and ISO/IEC 23270]

这里有一点迷惑 那些可以称为是 3.0 那些则是 2.0......

Osborn: 这是我后面要问你的问题。

Hejlsberg: 这些数字这有一点不行 我们应该在某种程度上修改一些东西。但除此之外,已经有第三方独立的C#的实现了。这就是大家都知道的Mono。并且,并不是我们的私有策略。

同时我也想微软在过去的五年中从透明化 社区参与 开放程度等方面有了很大的转变。像我们现在和客户进行的对话和五年之前是非常非常不同的,和十年前相比更是天壤之别。你知道,整个行业,通过Blog和开放源代码,已经改变了很多,单个开发者参与的也和过去是不能比拟的。

C# 语言作为面向组建的语言

Osborn: 当你在 2000 介绍 C# 语言的时候 一个很厉害的武器是这是第一个面向组件的语言。在过去的五年中,这一点改变了吗?

Hejlsberg: 当然 变得更好的。可是 C# 仍然是有很多面向组件语言的特点。这带给我们属性,方法,事件和其他的开发者每天编程都会平到核心部分。很久以前,甚至最近,编程仍然是一个辅助工具,这些工具仍然倾向于这样一种编程模型:设计界面,在这上面放上组件,然后修改属性,并加上代码。

我总觉得属性 事件 方法是如此重要 应该作为语言的一等公民来对待 这就是我们在 C# 上所做的工作。老实说:我也听到了一些对属性的抱怨。这其实是个屁事,你明白我的意思吗?事实上,人们总是按照事实来想问题。

从常识上来看 作为一等公民来看待的主意是我们经常做的 是非常自然的。我们在LINQ中有很多方法来做一件事情,语言集成的查询,不是吗?因为我们都需要查询,那么不应该在编程语言中把这些查询符号作为很重要的事情对待吗? 用声明的方法在一个更高的层次来表达一些事情比你写很多诸如for循环和if判断语 句的来得更自然吧。

posted @ 2006-04-07 18:26 spring21st 阅读(169) | 评论 (0)编辑 收藏