用户操作
[即时聊天] [发私信] [加为好友]
章峰ID:funsuzhou
4256次访问,排名2万外,好友1人,关注者5人。
funsuzhou的文章
原创 1 篇
翻译 0 篇
转载 2 篇
评论 3 篇
最近评论
UserLoginNames:"通用方法"
不是太明白???
fan178:using Excel; 这个报错啊,说没有找到这个namespace
fan178:funsuzhou你真是太好,解决了我得大问题,我现在主要工作也就是把EXCEL导入到数据库,希望和你交个朋友,请教你一些更多得问题
文章分类
    收藏
    相册
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 C#操作Excel常用语句收藏

     | 

    (1)插入一定数量的行数

    ((Excel._Worksheet)excel.Sheets [1]).get_Range (excel.Cells [1,1],excel.Cells[4,1]).EntireRow .Insert (missing,missing);

     

    (2)输出报表,如果Report1存在,则把模板存为Report2.xls
        string tempPath2,tempPath1= Application.StartupPath .Trim ()+"\\Export\\Report";
        for(int k=1;;k++)
        {
         tempPath2=tempPath1+k.ToString() +".xls";
         if(File.Exists(tempPath2)==false)
         {
          break;
         }
        }

    (3)把Template目录下的模板拷贝到Export目录下,路径和文件名为上述(2)里面的tempPath2:
        FileInfo mode=new FileInfo(Application.StartupPath.Trim()+"\\Template\\template.xls");
        mode.CopyTo(tempPath2,true);

     

    (4)打开这个从模板拷贝到Export目录的文件,并在第i行、j列插入内容:
        Excel.Application myExcel=new Excel.ApplicationClass();
        object missing=Missing.Value;
        myExcel.Application.Workbooks.Open (tempPath2,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing);

     在第i行、j列写入内容:

    xSt=(Excel.Worksheet)myExcel.Sheets [1];

    xSt.Cells [i,j]=textBox1.Text ;  //等于号后面可以是任何兼容的对象

     

    (5)将第1行到40行的行高设为14.25:

    xSt.get_Range (xSt.Cells [1,1],xSt.Cells [40,1]).RowHeight =14.25;

     

    (6)设置边框
    xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,colIndex]).Borders.LineStyle = 1;

     

    (7)用Excel自带的查询分析器快速填充数据
    Excel._Workbook xBk;
    Excel._Worksheet xSt;
    Excel._QueryTable xQt;
    string Conn = "ODBC;DRIVER=SQL Server;SERVER=ServerName;UID=sa;PWD=;APP=WinXP;WSID=ClientName;DATABASE=DatabaseName";
    string SelectString = "SELECT * from tablename";
    xBk = myExcel.Workbooks[1];
    xSt = (Excel._Worksheet)xBk.ActiveSheet;
    xQt = xSt.QueryTables.Add(Conn,xSt.get_Range(myExcel.Cells[11,2],myExcel.Cells[11,2]),SelectString);
    xQt.Name = "";
    xQt.FieldNames = false;
    xQt.RowNumbers = false;
    xQt.FillAdjacentFormulas = false;
    xQt.PreserveFormatting = true;
    xQt.BackgroundQuery = true;
    xQt.RefreshStyle = Excel.XlCellInsertionMode.xlInsertDeleteCells;
    xQt.AdjustColumnWidth = false;
    xQt.RefreshPeriod = 0;
    xQt.PreserveColumnInfo = true;
    xQt.Refresh(xQt.BackgroundQuery);

     

    (8)增加sheet并命名sheet

    private void Button1_Click(object sender, System.EventArgs e)
      {
       Excel.Application  myExcel=new Excel .ApplicationClass ();
    myExcel.Visible =true;
       myExcel.Workbooks .Add (true);
       for(int i=0;i<5;i++)//增加多个SHEET
       {
        myExcel.Sheets .Add (Missing.Value,Missing.Value,Missing.Value,Missing.Value );    
       }

       for(int i=1;i<=6;i++)
       {
        for(int j=1;j<4;j++)
         myExcel.Cells[i,j]=i+j;
        ((Excel.Worksheet)myExcel.Sheets[i]).Name =i.ToString ();//修改SHEET名
       }
      }

     

    (9)插入图片(例如插入D盘根目录下的tt.bmp,必须添加引用:Microsoft.Office Object Library对象库,并在窗体最前面有using Office = Microsoft.Office.Core;)
    xSt.Shapes .AddPicture ("D:\\tt.bmp",Microsoft.Office .Core .MsoTriState.msoFalse ,Microsoft.Office .Core .MsoTriState.msoTrue ,10,10,150,150);

     

    --通用方法:

    还有很多C#操作Excel的方法,不在此举例了。

    当你不知道怎么写C#代码操作Excel时,一个比较通用的方法是:

    在Excel里->工具->宏->录制新宏,然后你将你想要的效果操作一遍,然后单击 工具->宏->停止录制,然后单击 工具->宏->宏->编辑,就可以查看代码了,这些代码与C#里面的代码大部分是类似的,有些代码的引用不一定完全一样,但你最起码知道了这个引用方法是从哪个父对象引用的,在VS里面找起来也方便很多。

    发表于 @ 2004年07月07日 21:06:00|评论(loading...)|编辑

     | 

    评论

    #UserLoginNames 发表于2008-04-29 11:41:33  IP: 116.228.58.*
    "通用方法"
    不是太明白???
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © funsuzhou