成都网站建设设计

将想法与焦点和您一起共享

ASP.NET报表问题的解决方法

ASP.NET报表问题的解决方法,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

十余年的巧家网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整巧家建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联公司从事“巧家网站设计”,“巧家网站推广”以来,每个客户项目都认真落实执行。

做ASP.NET项目都会碰到ASP.NET报表问题,中国式报表的繁琐让我很是反感,可没法子啊,客户有需求!自然而然想用DCOM直接操作EXCEL,马马虎虎算是成了,虽说安全性不好,资源浪费严重,毕竟在局域网中使用,凑合吧。

不过总是讨厌在服务端那个没有结束的EXCEL进程……一定要把敌人杀死!google了一把,原来当今中外都有这个ASP.NET报表问题。解决方案也有,Windows XP下搞定,但我在WINDOWS 2003下搞了整整一天也没杀死,得,真想自个杀了。后来有人推荐了个控件ASPOSE解决ASP.NET报表问题,这玩意强,服务端都不用装EXCEL,效果不错!想偷懒的用这玩意,一个字——爽! 

private string subTotal(int row ,int num)          {               string r = (row+1).ToString();           if( num == 0)//           {               return "=C"+r+"+F"+r+"-I"+r;           }          else             return "=E"+r+"+H"+r+"-K"+r;                        }          private string sumTotal(string scol,int firstrow,int num){           string r = num.ToString();              string fr = firstrow.ToString();              return "=Sum("+scol+fr+":"+scol+r+")";           }          private void CreateExcelWorkbook(DataRow[] rows)          {              string strCurrentDir = Server.MapPath("..") + "\\TempReports\\";              string licenseFile = MapPath("..") + "\\XML\\Aspose.Excel.lic";                           Excel excel = new Excel(licenseFile, this);          ;              string designerFile = strCurrentDir+"cangku2.xls";                          excel.Open(designerFile);              Worksheet sheet = excel.Worksheets["Sheet1"];              sheet.Name = "wuzi";              Cells cells = sheet.Cells;              int styleIndex;                            styleIndex = excel.Styles.Add();              Aspose.Excel.Style stylecell = excel.Styles[styleIndex];              stylecell.Borders[BorderType.LeftBorder].LineStyle=CellBorderType.Thin;              stylecell.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin;              stylecell.Borders[BorderType.RightBorder].LineStyle=CellBorderType.Thin;              stylecell.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin;              int iRow =4;              foreach(DataRow row in rows)              {              cells[iRow,0].PutValue(row[0].ToString());              cells[iRow,1].PutValue(row[1].ToString());              cells[iRow,2].PutValue(row[2]);              cells[iRow,3].PutValue( row[3]);              cells[iRow,4].PutValue(row[4]);              cells[iRow,5].PutValue(row[5]);              cells[iRow,6].PutValue(row[3]);              cells[iRow,7].PutValue(row[6]);              cells[iRow,8].PutValue(row[7]);              cells[iRow,9].PutValue(row[3]);              cells[iRow,10].PutValue(row[8]);              cells[iRow,11].Formula=subTotal(iRow,0);              cells[iRow,12].PutValue(row[3]);              cells[iRow,13].Formula=subTotal(iRow,1);              iRow++;                  }              string zj="总计";                  cells[iRow,3].PutValue(zj);                   cells[iRow,6].PutValue(zj);                   cells[iRow,9].PutValue(zj);                 cells[iRow,12].PutValue(zj);                  cells[iRow,4].Formula=sumTotal("E",5,iRow);                  cells[iRow,7].Formula=sumTotal("H",5,iRow);                  cells[iRow,10].Formula=sumTotal("K",5,iRow);                  cells[iRow,13].Formula=sumTotal("N",5,iRow);                  cells[1,8].PutValue(cpStartDate.SelectedDate.ToShortDateString());                  cells[1,12].PutValue(cpEndDate.SelectedDate.ToShortDateString());              Range range = cells.CreateRange(4,0,iRow-4+1,14);                  range.Style = stylecell;              for(int i = 0; i < excel.Worksheets.Count ; i ++)              {                  sheet = excel.Worksheets[i];                  if(sheet.Name != "wuzi")                  {               excel.Worksheets.RemoveAt(i);                      i --;                  }               }                  /*Response.Clear();          Response.Buffer= true;          Response.Charset="GB2312";           this.Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");*/                       excel.Save(HttpUtility.UrlEncode("物资进出库汇总.xls",Encoding.UTF8), SaveType.OpenInBrowser,FileFormatType.Default,this.Response);  }

看完上述内容,你们掌握ASP.NET报表问题的解决方法的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


当前文章:ASP.NET报表问题的解决方法
当前URL:http://chengdu.cdxwcx.cn/article/jjcsii.html