CSDN博客

img funsuzhou

C#操作Excel常用语句

发表于2004/7/7 21:06:00  2517人阅读

(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里面找起来也方便很多。

0 0

相关博文

我的热门文章

img
取 消
img