薔薇之地
记录考公的点滴
博客园  首页  新随笔  联系  管理  订阅 订阅
利用OWC组件生成EXCEL表(c#)

 


                Microsoft.Office.Interop.Owc11.SpreadsheetClass  oSheet
= new SpreadsheetClass( );
                XmlDocument  xmlDoc 
= new XmlDocument( );
                xmlDoc.Load(Server.MapPath(
"./Reports/")+"abc.xml");
                
string strXml =xmlDoc.DocumentElement.OuterXml;
                oSheet.XMLData 
= strXml; 
                
                oSheet.Cells[
2,12]=DateTime.Now.ToString("yyyyMMdd");//制表日期                
                int i=4;
                
if (Session["datatable"] != null)
                
{
                    DataTable dt
=    (System.Data.DataTable)Session["datatable"];
                    
for(int j=0;j<dt.Rows.Count;j++)
                    
{
                        oSheet.Cells[i,
1] = dt.Rows[j][1].ToString();
                        oSheet.Cells[i,
2] = dt.Rows[j][2].ToString();
                        oSheet.Cells[i,
3] = dt.Rows[j][3].ToString();                        
               i
++;                
                    }


                }

                oSheet.get_Range(oSheet.Cells[
4,1], oSheet.Cells[i-1,3]).Borders.set_LineStyle(XlLineStyle.xlContinuous);
                oSheet.get_Range(oSheet.Cells[
4,1], oSheet.Cells[i-1,3]).Font.set_Size(10);
string desFileName="abc"+System.DateTime.Now.ToString("yyMMddHHmmssff")+".xls";
                
string desPathFileName=Server.MapPath("../ReportDocs/")+desFileName;            
            
                
//輸出整理後的文件
                oSheet.Export(desPathFileName, Microsoft.Office.Interop.Owc11.SheetExportActionEnum.ssExportActionNone, Microsoft.Office.Interop.Owc11.SheetExportFormat.ssExportXMLSpreadsheet);

                
string path = desPathFileName;
                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";
                
// 把文件流傳送到Client端
                Response.WriteFile(file.FullName);
                file 
= null;
                Response.End();


注意:模版的sheet名一定要为英文哦,否则,繁体系统做的模版在简体系统看来就会是xml的文本哦!
posted on 2006-04-12 09:24 野薔薇 阅读(1185) 评论(4) 编辑 收藏
刷新评论刷新页面返回顶部
程序员问答社区,解决您的IT难题
博客园首页博问新闻闪存程序员招聘知识库
Copyright ©2012 野薔薇