• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
薔薇之地
记录考公的点滴
博客园    首页    新随笔    联系   管理    订阅  订阅
利用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  野薔薇  阅读(1722)  评论(4)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3