如何在Asp.net2.0中生成excel文档,需要怎样的.net环境?
比如通过点击按钮生成excel表,完成编辑后保存到服务器.最好附上代码.
比如通过点击按钮生成excel表,完成编辑后保存到服务器.最好附上代码.
解决方案 »
- DropDownList 用户代码未处理 求救~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- 请教一个ajax请求的问题
- 关于web.config 中的 <namespaces> 的问题
- TreeView刷新问题
- 关于webConfig中的路径的设置问题!
- ViewStatus注册页面的控件值和事件代码,在刷新时,会自动恢复页面的值,同时也很自动执行事件代码,该如何禁止事件代码的执行
- asp.net&C#事件的问题:大家帮帮我啊。紧急。
- 检测用户对浏览器的操作
- asp2.0 cms菜单错位 求处理方法
- 如何让HyperLink失效,也就是点击以后并不会转到NavigateUrl中的页面:
- 有博客源码吗
- 从excel向sql server导入数据,发生 不允许所请求的注册表访问权 错误。
{
string strFileName="";
System.Web.UI.WebControls.CheckBox chkExport=null;
Excel.ApplicationClass excel=null;
Excel.Workbook workbook=null;
Excel.Worksheet activeSheet=null;
Excel.Worksheet sheet=null;
strFileName="平台和项目周总结和计划";
if( System.IO.File.Exists( Server.MapPath(strFileName+".xls") ) )
System.IO.File.Delete( Server.MapPath(strFileName+".xls") );
try
{
excel=new Excel.ApplicationClass();
workbook = excel.Workbooks.Add(Type.Missing);
activeSheet=(Excel.Worksheet)workbook.ActiveSheet;
int week=0;
int rowStart=1;
int rowCur=1;
string strItem=null;
int iItem=2;
foreach(DataGridItem oDataGridItem in dgWP.Items)
{
chkExport = (System.Web.UI.WebControls.CheckBox)oDataGridItem.FindControl("WPCheckBox");
if(chkExport.Checked==true)
{
string strWeek=((System.Web.UI.WebControls.Label)(oDataGridItem.FindControl("weekLabel"))).Text;
if(week!=int.Parse(strWeek))//以周为单位分页
{
sheet = (Excel.Worksheet)excel.Sheets.Add(activeSheet,Type.Missing,Type.Missing,Type.Missing);
DateTime dt=Convert.ToDateTime(oDataGridItem.Cells[4].Text);
DateTime dtStart=(int)dt.DayOfWeek==0?dt.AddDays(1):dt.AddDays(6-(int)dt.DayOfWeek);
sheet.Name=dtStart.ToShortDateString()+"计划";
FillExcelTitle(sheet);
week=int.Parse(strWeek);
rowStart=2;
rowCur=2;
}
//填写该计划的详细内容
System.Data.DataTable dtWPContent=wpContent.SelectWPContentbyWPID(oDataGridItem.Cells[1].Text).Tables[0];
if(dtWPContent.Rows.Count>0)
{
sheet.Cells[rowCur,1]=dtWPContent.Rows[0]["ProductLineName"].ToString();
for(int i=0;i<dtWPContent.Rows.Count;i++)
{
if(strItem==dtWPContent.Rows[i]["ProductTypeName"].ToString())
{
sheet.get_Range("B"+iItem.ToString(),"B"+(rowCur).ToString()).Merge(0);
sheet.get_Range("C"+iItem.ToString(),"C"+(rowCur).ToString()).Merge(0);
}
else
{
if(strItem==null) strItem=dtWPContent.Rows[i]["ProductTypeName"].ToString();
sheet.Cells[rowCur,2]=dtWPContent.Rows[i]["ProductTypeName"].ToString();
sheet.Cells[rowCur,3]=dtWPContent.Rows[i]["Frequency"].ToString();
strItem=dtWPContent.Rows[i]["ProductTypeName"].ToString();
iItem=rowCur;
}
sheet.Cells[rowCur,4]=dtWPContent.Rows[i]["ProductSpec"].ToString();
sheet.Cells[rowCur,5]=dtWPContent.Rows[i]["Content"].ToString()+" "+dtWPContent.Rows[i]["Tester"].ToString();
if(dtWPContent.Rows[i]["bTempFlag"].ToString()=="1")
{
((Excel.Range)sheet.Cells[rowCur,5]).Font.Color=0xFF0000;
((Excel.Range)sheet.Cells[rowCur,5]).Font.Bold=true;
}
sheet.Cells[rowCur,6]=exFunc.FormatDateString(dtWPContent.Rows[i]["PlanStartTime"].ToString())
+"-"+exFunc.FormatDateString(dtWPContent.Rows[i]["PlanEndTime"].ToString());
sheet.Cells[rowCur,7]=exFunc.FormatDateString(dtWPContent.Rows[i]["ExecStartTime"].ToString())
+"-"+exFunc.FormatDateString(dtWPContent.Rows[i]["ExecEndTime"].ToString());
sheet.Cells[rowCur,8]=dtWPContent.Rows[i]["FinishState"].ToString();
if(dtWPContent.Rows[i]["FinishState"].ToString()=="未完成")
{
((Excel.Range)sheet.Cells[rowCur,8]).Font.Color=0x00FF;
((Excel.Range)sheet.Cells[rowCur,8]).Font.Bold=true;
}
sheet.Cells[rowCur,9]=dtWPContent.Rows[i]["Conclusion"].ToString();
rowCur++;
}
sheet.get_Range("A"+rowStart.ToString(),"A"+(rowCur-1).ToString()).Merge(0);
sheet.get_Range("A"+rowStart.ToString(),"I"+(rowCur-1).ToString()).Interior.Color=RandomColor();
iItem=rowCur;
rowStart=rowCur;
}
}
}
workbook.SaveAs(Server.MapPath(strFileName),Excel.XlFileFormat.xlWorkbookNormal,
null,null,false,false,Excel.XlSaveAsAccessMode.xlShared,false,false,null,
null,null);
Response.AppendHeader("Content-Disposition","attachment;filename="+Server.UrlEncode(strFileName)+".xls");
Response.ContentEncoding=System.Text.Encoding.GetEncoding("gb2312");
Page.Response.ContentType = "Application/ms-excel";
Response.WriteFile(strFileName+".xls");
Response.Flush();
Response.Clear();
Response.End();
workbook.Close(null,null,null);
workbook=null;
GC.Collect();
GC.WaitForPendingFinalizers();
excel.Workbooks.Close();
excel.Quit();
excel=null;
GC.Collect();
GC.WaitForPendingFinalizers();
}
catch(Exception ex)
{
workbook.Close(null,null,null);
workbook=null;
GC.Collect();
GC.WaitForPendingFinalizers();
excel.Workbooks.Close();
excel.Quit();
excel=null;
GC.Collect();
GC.WaitForPendingFinalizers();
}
}
private void FillExcelTitle(Excel.Worksheet sheet)
{
sheet.Columns.HorizontalAlignment=Excel.XlHAlign.xlHAlignLeft;
sheet.Columns.VerticalAlignment=Excel.XlVAlign.xlVAlignCenter;
sheet.Columns.Font.Size=10;
sheet.Columns.Borders.Color=0x000000;
sheet.Columns.Borders.LineStyle=1;
sheet.get_Range("A1","I1").Font.Bold=true;
sheet.get_Range("A1","I1").Interior.Color=0xE0FFFF;
sheet.get_Range("A1","I1").HorizontalAlignment=Excel.XlHAlign.xlHAlignLeft;
sheet.get_Range("A1","I1").VerticalAlignment =Excel.XlVAlign.xlVAlignCenter;
sheet.get_Range("A1","A1").ColumnWidth=8;
sheet.get_Range("A1","A1").Value2="产品线";
sheet.get_Range("B1","B1").ColumnWidth=10;
sheet.get_Range("B1","B1").Value2="产品型号";
sheet.get_Range("C1","C1").ColumnWidth=8;
sheet.get_Range("C1","C1").Value2="频段";
sheet.get_Range("D1","D1").ColumnWidth=12;
sheet.get_Range("D1","D1").Value2="产品规格";
sheet.get_Range("E1","E1").ColumnWidth=35;
sheet.get_Range("E1","E1").Value2="工作内容和责任人";
sheet.get_Range("F1","F1").ColumnWidth=20;
sheet.get_Range("F1","F1").Value2="计划起止时间";
sheet.get_Range("G1","G1").ColumnWidth=20;
sheet.get_Range("G1","G1").Value2="执行起止时间";
sheet.get_Range("H1","H1").ColumnWidth=8;
sheet.get_Range("H1","H1").Value2="完成情况";
sheet.get_Range("I1","I1").ColumnWidth=10;
sheet.get_Range("I1","I1").Value2="总结";
sheet.get_Range("E1","E1").EntireColumn.WrapText=true;
sheet.get_Range("I1","I1").EntireColumn.WrapText=true;
}
{
string filenanme = fileup.FileName.ToString();//得到文件名
filenanme = filenanme.Substring(filenanme.LastIndexOf('\\') + 1);
string savepath = Server.MapPath("~\\excel\\" + filenanme);
fileup.PostedFile.SaveAs(savepath);
string script = "<script>alert('" + "上传成功!" + "')</script>";
Response.Write(script);
}
else
{
string script = "<script>alert('" + "请选择要上传的文件!" + "')</script>";
Response.Write(script);
}前台:
<asp:FileUpload runat="server" ID="fileup" />
<asp:Button ID="Button3" runat="server" OnClick="Button3_Click" Text="导入数据" />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="导入数据" />
if (FileUpload1.HasFile)
{
//得到文件名
string filename = FileUpload1.FileName; //取得扩展名
int i = filename.LastIndexOf(".");
string newext = filename.Substring(i); //根据时间文件大小重命名
DateTime now = DateTime.Now;
string newname = now.DayOfYear.ToString() +now.Minute.ToString()+FileUpload1.PostedFile.ContentLength.ToString(); //保存的路径
string savepath = Server.MapPath("~\\UploadFileTemp\\" + newname + newext);
FileUpload1.PostedFile.SaveAs(Server.MapPath("~\\UploadFileTemp\\" + newname + newext));}
up,jf!