dataset 导入 excel参考 http://topic.csdn.net/t/20050119/16/3738430.html

转载 2007年09月19日 10:22:00
你可以dataset   导入   excel参考  
  http://community.csdn.net/Expert/topic/3077/3077526.xml?temp=.8746912  
  http://www.dev-club.com/club/bbs/showEssence.asp?id=26350  
   
  http://dev.csdn.net/Develop/article/18/18623.shtm  
  http://community.csdn.net/Expert/topic/3112/3112296.xml?temp=.926861  
  http://dotnet.aspx.cc/ShowDetail.aspx?id=BF0A54F9-C7C7-4200-BD9A-802AC1F5DE50  
   
   
  http://expert.csdn.net/Expert/TopicView1.asp?id=2928057  
   
  www.foxhis.com/powermjtest/  
  原文代码:  
   
   
   
   
  private   void   Button1_Click(object   sender,   System.EventArgs   e)  
  {  
      //写入Excel的方法:  
      //定义需要参数。  
      string   SourceFile="Data.XLS";                                                                 //源文件名称。  
      string   TemplatePath=Server.MapPath("ExcelTemplate");         //存放源文件的文件夹路径。  
      string   DownloadPath=Server.MapPath("ExcelDownload");         //副本的文件夹路径。  
      //副本的文件名。  
      string   TempFileName   =   DateTime.Now.ToString("yyyyMMdd")   +   DateTime.Now.Hour   +   DateTime.Now.Minute   +   DateTime.Now.Second   +   ".XLS";      
      object   missing   =   System.Reflection.Missing.Value;  
      Excel.Application   myExcel=new   Excel.Application();  
      //打开新文件  
      myExcel.Application.Workbooks.Open(TemplatePath+"//"+SourceFile,missing,missing,missing,missing,  
  missing,missing,missing,missing,missing,missing,   missing,missing);    
      Excel.Workbook   myBook=myExcel.Workbooks[1];  
      Excel.Worksheet   curSheet   =   (Excel.Worksheet)myBook.Sheets[2];  
   
      string   DownloadFilePath=DownloadPath+"//"+TempFileName;  
   
      int   i=0;  
      while   (i<=10)  
      {  
          myExcel.Cells[4+i,2]=i.ToString();  
          myExcel.Cells[4+i,3]=i.ToString();  
          myExcel.Cells[4+i,4]=i.ToString();  
          myExcel.Cells[4+i,5]=i.ToString();  
          myExcel.Cells[4+i,6]=i.ToString();  
          i++;  
      }        
   
      myBook.Saved=true;  
      //myBook.SaveAs(DownloadFilePath,missing,"","",false,false,Excel.XlSaveAsAccessMode.xlNoChange,1,false,missing,missing);  
   
      myBook.PrintPreview(0);  
      //myBook.PrintOut(missing,missing,missing,missing,missing,missing,missing,missing);  
      myBook.Close(false,   null,null);  
      myExcel.Quit();  
      System.Runtime.InteropServices.Marshal.ReleaseComObject(myBook);  
      System.Runtime.InteropServices.Marshal.ReleaseComObject(myExcel);  
      myBook   =   null;  
      myExcel   =   null;  
      GC.Collect();  
      //Response.Redirect("ExcelDownload//"+TempFileName); //下载文件  
  }   
 如果要设置颜色,  
   
  public   void   OutputExcel(DataView   dv,string   str)  
  {  
  //  
  //   TODO:   在此处添加构造函数逻辑  
  //  
                                                        //dv为要输出到Excel的数据,str为标题名称  
  GC.Collect();  
  Application   excel;//   =   new   Application();  
  int   rowIndex=4;  
  int   colIndex=1;  
   
  _Workbook   xBk;  
  _Worksheet   xSt;  
   
  excel=   new   ApplicationClass();  
   
  xBk   =   excel.Workbooks.Add(true);  
   
  xSt   =   (_Worksheet)xBk.ActiveSheet;  
   
  //  
  //取得标题  
  //  
  foreach(DataColumn   col   in   dv.Table.Columns)  
  {  
  colIndex++;  
  excel.Cells[4,colIndex]   =   col.ColumnName;  
  xSt.get_Range(excel.Cells[4,colIndex],excel.Cells[4,colIndex]).HorizontalAlignment   =   XlVAlign.xlVAlignCenter;//设置标题格式为居中对齐  
  }  
   
  //  
  //取得表格中的数据  
  //  
  foreach(DataRowView   row   in   dv)  
  {  
  rowIndex   ++;  
  colIndex   =   1;  
  foreach(DataColumn   col   in   dv.Table.Columns)  
  {  
  colIndex   ++;  
  if(col.DataType   ==   System.Type.GetType("System.DateTime"))  
  {  
  excel.Cells[rowIndex,colIndex]   =   (Convert.ToDateTime(row[col.ColumnName].ToString())).ToString("yyyy-MM-dd");  
  xSt.get_Range(excel.Cells[rowIndex,colIndex],excel.Cells[rowIndex,colIndex]).HorizontalAlignment   =   XlVAlign.xlVAlignCenter;//设置日期型的字段格式为居中对齐  
  }  
  else  
  if(col.DataType   ==   System.Type.GetType("System.String"))  
  {  
  excel.Cells[rowIndex,colIndex]   =   "'"+row[col.ColumnName].ToString();  
  xSt.get_Range(excel.Cells[rowIndex,colIndex],excel.Cells[rowIndex,colIndex]).HorizontalAlignment   =   XlVAlign.xlVAlignCenter;//设置字符型的字段格式为居中对齐  
  }  
  else  
  {  
  excel.Cells[rowIndex,colIndex]   =   row[col.ColumnName].ToString();  
  }  
  }  
  }  
  //  
  //加载一个合计行  
  //  
  int   rowSum   =   rowIndex   +   1;  
  int   colSum   =   2;  
  excel.Cells[rowSum,2]   =   "合计";  
  xSt.get_Range(excel.Cells[rowSum,2],excel.Cells[rowSum,2]).HorizontalAlignment   =   XlHAlign.xlHAlignCenter;  
  //  
  //设置选中的部分的颜色  
  //  
  xSt.get_Range(excel.Cells[rowSum,colSum],excel.Cells[rowSum,colIndex]).Select();  
  xSt.get_Range(excel.Cells[rowSum,colSum],excel.Cells[rowSum,colIndex]).Interior.ColorIndex   =   19;//设置为浅黄色,共计有56种  
  //  
  //取得整个报表的标题  
  //  
  excel.Cells[2,2]   =   str;  
  //  
  //设置整个报表的标题格式  
  //  
  xSt.get_Range(excel.Cells[2,2],excel.Cells[2,2]).Font.Bold   =   true;  
  xSt.get_Range(excel.Cells[2,2],excel.Cells[2,2]).Font.Size   =   22;  
  //  
  //设置报表表格为最适应宽度  
  //  
  xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,colIndex]).Select();  
  xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,colIndex]).Columns.AutoFit();  
  //  
  //设置整个报表的标题为跨列居中  
  //  
  xSt.get_Range(excel.Cells[2,2],excel.Cells[2,colIndex]).Select();  
  xSt.get_Range(excel.Cells[2,2],excel.Cells[2,colIndex]).HorizontalAlignment   =   XlHAlign.xlHAlignCenterAcrossSelection;  
  //  
  //绘制边框  
  //  
  xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,colIndex]).Borders.LineStyle   =   1;  
  xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,2]).Borders[XlBordersIndex.xlEdgeLeft].Weight   =   XlBorderWeight.xlThick;//设置左边线加粗  
  xSt.get_Range(excel.Cells[4,2],excel.Cells[4,colIndex]).Borders[XlBordersIndex.xlEdgeTop].Weight   =   XlBorderWeight.xlThick;//设置上边线加粗  
  xSt.get_Range(excel.Cells[4,colIndex],excel.Cells[rowSum,colIndex]).Borders[XlBordersIndex.xlEdgeRight].Weight   =   XlBorderWeight.xlThick;//设置右边线加粗  
  xSt.get_Range(excel.Cells[rowSum,2],excel.Cells[rowSum,colIndex]).Borders[XlBordersIndex.xlEdgeBottom].Weight   =   XlBorderWeight.xlThick;//设置下边线加粗  
  //  
  //显示效果  
  //  
  excel.Visible=true;  
   
  //xSt.Export(Server.MapPath(".")+"//"+this.xlfile.Text+".xls",SheetExportActionEnum.ssExportActionNone,Microsoft.Office.Interop.OWC.SheetExportFormat.ssExportHTML);  
  xBk.SaveCopyAs(Server.MapPath(".")+"//"+this.xlfile.Text+".xls");  
   
  ds   =   null;  
                          xBk.Close(false,   null,null);  
   
                          excel.Quit();  
                          System.Runtime.InteropServices.Marshal.ReleaseComObject(xBk);  
                          System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);  
    System.Runtime.InteropServices.Marshal.ReleaseComObject(xSt);  
                          xBk   =   null;  
                          excel   =   null;  
  xSt   =   null;  
                          GC.Collect();  
  string   path   =   Server.MapPath(this.xlfile.Text+".xls");  
   
  System.IO.FileInfo   file   =   new   System.IO.FileInfo(path);  
  Response.Clear();  
  Response.Charset="GB2312";  
  Response.ContentEncoding=System.Text.Encoding.UTF8;  
  //   添加头信息,为"文件下载/另存为"对话框指定默认文件名  
  Response.AddHeader("Content-Disposition",   "attachment;   filename="   +   Server.UrlEncode(file.Name));  
  //   添加头信息,指定文件大小,让浏览器能够显示下载进度  
  Response.AddHeader("Content-Length",   file.Length.ToString());  
   
  //   指定返回的是一个不能被客户端读取的流,必须被下载  
  Response.ContentType   =   "application/ms-excel";  
   
  //   把文件流发送到客户端  
  Response.WriteFile(file.FullName);  
  //   停止页面的执行  
   
  Response.End();  
  }

相关文章推荐

sqlite中如何查询数据库中存在的所有表?(转自:http://topic.csdn.net/u/20081231/16/6aee6233-32c2-4f20-a3d7-0cb154974ce4.)

sqlite中如何查询数据库中存在的所有表? 请指教!!! 官方文档就有。 http://www.sqlite.org/faq.html (7) How do I list all tab...
  • lslxdx
  • lslxdx
  • 2011年11月06日 15:56
  • 2407

算法面试:精选微软经典的算法面试100题练习(http://topic.csdn.net/u/20101011/16/2befbfd9-f3e4-41c5-bb31-814e9615832e.h)

1.把二元查找树转变成排序的双向链表   题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 要求不能创建任何新的结点,只调整指针的指向。                ...
  • xjbzju
  • xjbzju
  • 2011年08月27日 08:47
  • 2222

Eclipse快捷键【http://topic.csdn.net/u/20100806/10/b6f5c08e-5bba-4361-a761-c89b20d42824.html?47565】

. 打开MyEclipse 6.0.1,然后“window”→“Preferences” 2. 选择“java”,展开,“Editor”,选择“Content Assist”。 3. ...
  • youycc
  • youycc
  • 2012年03月09日 12:51
  • 905

解析xml http://topic.csdn.net/u/20070409/19/6BAD2D5B-D78B-4CA1-81C7-F687D7E9FDE0.html

使用JDOM解析XML一、前言    JDOM是Breet Mclaughlin和Jason Hunter两大Java高手的创作成果,2000年初,JDOM作为一个开放源代码项目正式开始研发。JDOM...

C#下载4种方法(转载: http://topic.csdn.net/u/20120822/10/d8115bb7-2f2a-4c2f-b0c1-aab68bcb1e3e.html)

using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Secu...
  • shenyc
  • shenyc
  • 2012年08月30日 10:20
  • 2385

struts2开发环境中,enctype="multipart/form-data"上传文件时,request.getInputStream()为null的原因(转http://topic.csdn.net/u/20101210/11/78454a19-7

struts2开发环境中,通过设置enctype="multipart/form-data"上传文件时,在另一个jsp页面中通过request.getInputStream()手动获取二进制流结果为n...
  • fjfdszj
  • fjfdszj
  • 2011年01月06日 10:19
  • 2794

http://events.csdn.net/IE10/survey.html

  • 2012年12月21日 02:41
  • 259KB
  • 下载

c/c++编译器的内存分配模式 zz: http://blog.csdn.net/gukesdo/archive/2011/06/16/6548256.aspx

另外还有一篇讲解比较详细的是:http://www.cnblogs.com/lzjsky/archive/2010/11/24/1886720.htm本文转自:http://my.oschina.ne...

我为何爱读代码?你为何也应当爱? http://blog.csdn.net/bvbook/archive/2011/02/16/6187192.aspx

http://blog.csdn.net/bvbook/archive/2011/02/16/6187192.aspx 我恨读代码我发现,许多程序员都讨厌读代码——拜托别掩饰了,承认吧。差不多每个人都...
  • sony315
  • sony315
  • 2011年02月23日 09:58
  • 533

深入分析rails数据库连接流程 (转http://blog.csdn.net/pwlazy/archive/2007/11/16/1889264.aspx)

  第一部分:Method 1)def self.establish_connection(spec = nil)     case spec                             ...
  • fjfdszj
  • fjfdszj
  • 2011年06月08日 11:45
  • 795
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:dataset 导入 excel参考 http://topic.csdn.net/t/20050119/16/3738430.html
举报原因:
原因补充:

(最多只允许输入30个字)