生成Excel报表时,在C:/下总是生成它的副本,很讨厌,不知为什么? 生成Excel报表时,在C:/下总是生成它的副本,很讨厌,不知为什么?(asp.net) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我在asp在中调用set ExcelApp=server.CreateObject("Excel.Application")也会产生这种情况,而且程序日志中会产生提示安装被取消的日志。 你可以参考用NickLee.Common.ExcelLite工具类http://www.mikecat.net/blogview.asp?logID=1259&cateID=1 以下是该方法的代码: public void ToExcel(object [,] list) { Application app = new ApplicationClass(); try { //此变量用来设置模板文件名 string modelName= "Sell_RB"; string saveSign = "销售日报表"; //生成的报表文件名定义为模板文件名+生成年月日形式 string saveName = saveSign + DateTime.Parse(this.myDate).ToString("yyMMdd"); //报表模板 object modelFileName = “/ReportMode/” + modelName; //用户Excel文件名 object saveFileName = “D:/reprot/” + saveName; Workbook workbook = app.Workbooks.Open(modelFileName.ToString(),Missing.Value, Missing.Value,Missing.Value,Missing.Value, Missing.Value,Missing.Value,Missing.Value, Missing.Value,Missing.Value,Missing.Value, Missing.Value,Missing.Value,Missing.Value,Missing.Value); Excel.Worksheet xlSheet = (Excel.Worksheet)workbook.Worksheets[1]; xlSheet.Cells[2,2] = this.deptName; xlSheet.Cells[2,8] = this.myDate; xlSheet.Cells[3,1] = "货物名"; for(int i = 0 ; i< this.myType.Count; i++) //添加数据类型 { xlSheet.Cells[3,i+2] = this.myType[i].ToString(); } for(int i=0;i<list.GetLength(0);i++) { for(int j=0;j<list.GetLength(1);j++) { xlSheet.Cells[i+4,j+1] = list[i,j].ToString(); } } int row = list.GetLength(0) + 3; int col = list.GetLength(1); xlSheet.get_Range(xlSheet.Cells[3,1],xlSheet.Cells[row,col]).Borders.Weight = Excel.XlBorderWeight.xlThin ; //如果文件存在则删除后在创建 if(File.Exists(saveFileName.ToString()+".xls")) File.Delete(saveFileName.ToString()+".xls"); //另存为用户Excel文件 workbook.SaveAs(saveFileName,Missing.Value,Missing.Value,Missing.Value, Missing.Value,Missing.Value,XlSaveAsAccessMode.xlExclusive, Missing.Value,Missing.Value,Missing.Value, Missing.Value,Missing.Value); workbook.Close(false,Missing.Value,false); System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook); workbook = null; Common.SaveToReportManage(saveName,"销售日报表",saveFileName.ToString()); } catch(Exception ecp) { throw new Exception(ecp.Message); } finally { //关闭Excel app.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject(app); app = null; GC.Collect(); } } net程序自动生成静态网页,但是不收录是怎么回事? ASP.NET发布网站时,空目录被忽略,如何解决?在线等! asp.net网站部署时的错误 enum 取值 问个问题。js找中如何找到tr里面某一控件的id。 QQ功能? 一个字符编码的问题 文件上传不了,如何处理文件名 gridview选中行问题 好不容易登上来了,又有几个问题来麻烦各位了,关于Datagrid,试了几次不得要领阿!!急用! 走过,路过,大家来看看。 出现这样的错误提示?
set ExcelApp=server.CreateObject("Excel.Application")
也会产生这种情况,而且程序日志中会产生提示安装被取消的日志。
NickLee.Common.ExcelLite工具类http://www.mikecat.net/blogview.asp?logID=1259&cateID=1
public void ToExcel(object [,] list)
{
Application app = new ApplicationClass();
try
{
//此变量用来设置模板文件名
string modelName= "Sell_RB";
string saveSign = "销售日报表";
//生成的报表文件名定义为模板文件名+生成年月日形式
string saveName = saveSign + DateTime.Parse(this.myDate).ToString("yyMMdd");
//报表模板
object modelFileName = “/ReportMode/” + modelName;
//用户Excel文件名
object saveFileName = “D:/reprot/” + saveName;
Workbook workbook = app.Workbooks.Open(modelFileName.ToString(),Missing.Value,
Missing.Value,Missing.Value,Missing.Value,
Missing.Value,Missing.Value,Missing.Value,
Missing.Value,Missing.Value,Missing.Value,
Missing.Value,Missing.Value,Missing.Value,Missing.Value); Excel.Worksheet xlSheet = (Excel.Worksheet)workbook.Worksheets[1]; xlSheet.Cells[2,2] = this.deptName;
xlSheet.Cells[2,8] = this.myDate;
xlSheet.Cells[3,1] = "货物名";
for(int i = 0 ; i< this.myType.Count; i++) //添加数据类型
{
xlSheet.Cells[3,i+2] = this.myType[i].ToString();
} for(int i=0;i<list.GetLength(0);i++)
{
for(int j=0;j<list.GetLength(1);j++)
{
xlSheet.Cells[i+4,j+1] = list[i,j].ToString();
}
}
int row = list.GetLength(0) + 3;
int col = list.GetLength(1);
xlSheet.get_Range(xlSheet.Cells[3,1],xlSheet.Cells[row,col]).Borders.Weight = Excel.XlBorderWeight.xlThin ; //如果文件存在则删除后在创建
if(File.Exists(saveFileName.ToString()+".xls"))
File.Delete(saveFileName.ToString()+".xls"); //另存为用户Excel文件 workbook.SaveAs(saveFileName,Missing.Value,Missing.Value,Missing.Value,
Missing.Value,Missing.Value,XlSaveAsAccessMode.xlExclusive,
Missing.Value,Missing.Value,Missing.Value,
Missing.Value,Missing.Value); workbook.Close(false,Missing.Value,false);
System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
workbook = null; Common.SaveToReportManage(saveName,"销售日报表",saveFileName.ToString()); }
catch(Exception ecp)
{
throw new Exception(ecp.Message);
}
finally
{
//关闭Excel
app.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
app = null;
GC.Collect();
}
}