惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
Blog — PlanetScale
Blog — PlanetScale
GbyAI
GbyAI
C
Check Point Blog
腾讯CDC
Stack Overflow Blog
Stack Overflow Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
The GitHub Blog
The GitHub Blog
A
About on SuperTechFans
Recent Announcements
Recent Announcements
L
LangChain Blog
Microsoft Azure Blog
Microsoft Azure Blog
小众软件
小众软件
J
Java Code Geeks
博客园_首页
Jina AI
Jina AI
美团技术团队
H
Help Net Security
MyScale Blog
MyScale Blog
Engineering at Meta
Engineering at Meta
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
人人都是产品经理
人人都是产品经理
Y
Y Combinator Blog
S
SegmentFault 最新的问题

博客园 - 晰雨的天空

换工作了。去微软了。可惜是vender,但总算也是有机会去sigma上班了。 本人对于magicajax使用说明的翻译,还有很多不足和错误。欢迎大家指正. 跳到新页面,刷新框架. - 晰雨的天空 - 博客园 datagrid 超连接弹出新窗体 - 晰雨的天空 - 博客园 转 datagrid的操作 身份验证票 和 form验证 - 晰雨的天空 excel textbox 只能输入数字控制 - 晰雨的天空 - 博客园 静态构造器和静态属性的执行顺序 索引器的简单使用 参数定义符号params 使用 委托和事件 C#中废弃一个方法小技巧 (转自terrylee)只为收藏 复制表 , 拷贝表 怎样使按钮响应回车键(转) 路过的朋友都来看看,说说.程序员,什么是终点...哪里有方向 一道c#题.请高手给个答案 Session.Abandon和Session.Clear有何不同? C#中的const和readonly
c# 访问excel
晰雨的天空 · 2006-03-23 · via 博客园 - 晰雨的天空

 首先将excel.exe copy 到 ..\Microsoft Visual Studio .NET
                        2003\SDK\v1.1\Bin目录下
                        利用.net 中带的工具在命令提示符下执行tlbimp
                        excel.exe.这样就不会因为你的Excel是xp或2000的不同要去找不同的*.olb文件,还有一点就是因为在2000以后的版本中没有了excel9.olb这个文件了。

                        通过执行tlbimp excel.exe后我们会得到excel.dll文件。

                        只要有了这个Excel.dll,现在我们就能使用Excel的各种操作函数了。

一点说明:操作Excel的时候,可能会发生Excel进程被锁定,无法退

出,解决方法是在保存完并关闭myBook(工作簿)后,别关闭Excel进

程(//myApp.Quit();)。这样的结果是服务器上始终有一个Excel的

进程。可能会出现asp_net用户操作Excel的权限不够,配置Dcom。运

行Dcomcnfg.exe,找到Excel应用程序,配置其属性,身份验证级别

选"无",身份标识选"交互式用户",安全性页面,启动和访问均给

everyone。注意:查看当前进程中是否有Winword进程存在,如果有且

不能被结束,那么重启动计算机。再次运行你的代码即OK。这样以后

就不会出现权限不够的情况了。

在Visual Studio .NET中建立一个C# WinForm工程.
添加Microsoft Excel Object Library引用:
右键单击Project , 选“添加引用”
在COM 标签项,选中 locate Microsoft Excel Object Library

using Excel = Microsoft.Office.Interop.Excel;
using System.Reflection;

Excel.Application excel= new Excel.Application();


    int rowIndex=1;
    int colIndex=0;

    excel.Application.Workbooks.Add(true);
           
   
    System.Data.DataTable table=ds.Tables[0] ;
    foreach(DataColumn col in table.Columns)
    {
     colIndex++;   
     excel.Cells[1,colIndex]=col.ColumnName;               
    }

    foreach(DataRow row in table.Rows)
    {
     rowIndex++;
     colIndex=0;
     foreach(DataColumn col in table.Columns)
     {
      colIndex++;
      excel.Cells[rowIndex,colIndex]=row[col.ColumnName].ToString();
     }
    }
    excel.Visible=false;   
  
    excel.ActiveWorkbook.SaveAs("C:/A.XLS",Excel.XlFileFormat.xlExcel9795,null,null,false,false,Excel.XlSaveAsAccessMode.xlNoChange,null,null,null,null,null);

           
           
    //wkbNew.SaveAs strBookName

    //excel.Save(strExcelFileName);
    excel.Quit();
    excel=null;
           
    GC.Collect();//垃圾回收

回收垃圾
public void KillWordProcess()
{
int ProceedingCount = 0;
try
{
System.Diagnostics.Process [] ProceddingCon = System.Diagnostics.Process.GetProcesses();
foreach(System.Diagnostics.Process IsProcedding in ProceddingCon)
{
if(IsProcedding.ProcessName.ToUpper() == "WINWORD")
{
ProceedingCount += 1;
IsProcedding.Kill();
}
}
}
catch(System.Exception err)
{
MessageBox.Show(err.Message + "\r" +"(" + err.Source + ")" + "\r" + err.StackTrace);
}
}
#endregion