asp.net导出excel数据的常见方法汇总(4)

//已选择了Range对象的赋值:
   r.Text="中国";
       //未选择Range对象的赋值:
        mySheet.Cells[1,2].Text="中国";
     //已选择了Range对象的取值:
   String strValue= r.Text;
       //未选择Range对象的取值:
    String  strValue=  mySheet.Cells[1,2].Text;


     ③、给单元格设置边框
        

复制代码 代码如下:

mySheet.Cells[2, 1].BorderAround(XlLineStyle.xlContinuous, XlBorderWeight.xlThin, XlColorIndex.xlColorIndexAutomatic, null);//画线


     ④、合并单元格
  

复制代码 代码如下:

//合并单元格前先要将要合并的单元格选择为Range对象
            Range r=Range.get_Range("A1:F3");
  //然后现设置合并单元格
         r.MergeCells = true;


     ⑤、设置单元格的字体、字号、背景色等属性
    

复制代码 代码如下:

mySheet.Cells[1, 1].Font.Name = "黑体";
        mySheet.Cells[1, 1].Font.Size = 20;
        mySheet.Rows["1:1"].RowHeight = 40;
    mySheet.Cells[1, 1].Interior.Color = Color.FromArgb(224, 224, 224);//设置颜色


   ⑥、删除一行:
   

复制代码 代码如下:

//首先获取要删除的行的Range
    Microsoft.Office.Interop.Excel.Range range = (Microsoft.Office.Interop.Excel.Range)mySheet.Rows[sendedRow[1], Type.Missing];
   //注意删除行后删除后的行号被下面的行替换,如果逐行删除,请先从最大的行号往最小的行号删除
       range.Delete(Microsoft.Office.Interop.Excel.XlDeleteShiftDirection.xlShiftUp);


  ⑦、获取有数据的行数
   

复制代码 代码如下:

int rowsint = mySheet.UsedRange.Cells.Rows.Count;


六、EXCEL文件的保存与退出

1、EXCEL的保存与退出
  

复制代码 代码如下:

myBook.Save();
   myBooks.Close();
   myExcel.Quit();

2、EXCEL指定文件保存
   

复制代码 代码如下:

myBook.Close(true, FilePath +_file_Name, null);


七、释放EXCLE对象的资源与结束EXCEL  进程
   关于这方面内容有好多网友都在讲多种方法,经过本人实践,以下方面才能真正做到结束EXCEL的任务进程:
1、将所有以上对EXCEL的操作放到一个方法中,
2、在操作EXCEL后,即时将不使用对象一一释放并赋null值:
  

复制代码 代码如下:

System.Runtime.InteropServices.Marshal.ReleaseComObject(mysheet);
  mysheet=null;
  System.Runtime.InteropServices.Marshal.ReleaseComObject(myBook);
  myBook=null;
  System.Runtime.InteropServices.Marshal.ReleaseComObject(myBooks);
  myBooks=null;
  System.Runtime.InteropServices.Marshal.ReleaseComObject(myExcel);
  myExcel=null;


3、再新建一个方法,并以该方法中执行上面新建的操作EXCEL方法,并在执行完操作EXCEL方法的后面添加GC.Collect():

复制代码 代码如下:

//下面方法中OutPutEXCEL()方法是输出EXCEL文件的对EXCEL 操作的方法
private void killExcel()
{
  outPutEXCEL();
  GC.Collect();
  GC.WaitForPendingFinalizers();
}


    好多网友都在介绍使用GC.Collect()释放EXCEL占用的资源来结束EXCEL进行,如果将“GC.Collect();”与操作EXCEL的业务写在一个程序块中,“GC”是永远不能结束EXCEL进程的,在WEB应用程序中,这种现象是很可怕的事情。原因是GC不会清理本程序块中的垃圾内存的。

4、在业务事件中调用killEXCEL()方法:

复制代码 代码如下:

protected void LinkButton3_Click(object sender, EventArgs e)
{
  //导出EXCEL
  killExcel();
}


八、一些权限的基本设置:

使用以上方法在开发环境中调试程序没有一点问题,等发布到服务器上后,程序还是不能正常运行,需要进行如下的权限设置:

.NET导出Excel遇到的80070005错误的解决方法:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjzgsz.html