问题描述
asp.net服务器读取数据库信息生成excel,然后保存到服务器的临时文件夹下,这个怎么实现啊?郁闷了。怎么弄。那个文件都会在客户端输出下载。我只需要保存到服务器的目录下就行了。
解决方案
解决方案二:
1.用ExcelCOM生成;2.或者找个第3方生成Excel的比如POI
解决方案三:
解决方案四:
C#导出Excel的函数(可根据实际需要进行相应修改)//导出Excel的方法privatevoidExportExcel(){DataSetds=dtsSelect;//数据源if(ds==null)return;stringsaveFileName="";boolfileSaved=false;SaveFileDialogsaveDialog=newSaveFileDialog();saveDialog.DefaultExt="xls";saveDialog.Filter="Excel文件|*.xls";saveDialog.FileName="Sheet1";saveDialog.ShowDialog();saveFileName=saveDialog.FileName;if(saveFileName.IndexOf(":")<0)return;//被点了取消Excel.ApplicationxlApp=newExcel.Application();if(xlApp==null){MessageBox.Show("无法创建Excel对象,可能您的机子未安装Excel");return;}Excel.Workbooksworkbooks=xlApp.Workbooks;Excel.Workbookworkbook=workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);Excel.Worksheetworksheet=(Excel.Worksheet)workbook.Worksheets[1];//取得sheet1//写入字段for(inti=0;i<ds.Tables[0].Columns.Count;i++){worksheet.Cells[1,i+1]=ds.Tables[0].Columns[i].ColumnName;}//写入数值for(intr=0;r<ds.Tables[0].Rows.Count;r++){for(inti=0;i<ds.Tables[0].Columns.Count;i++){worksheet.Cells[r+2,i+1]=ds.Tables[0].Rows[r][i];}System.Windows.Forms.Application.DoEvents();}worksheet.Columns.EntireColumn.AutoFit();//列宽自适应。if(cmbxType.Text!="Notification"){Excel.Rangerg=worksheet.get_Range(worksheet.Cells[2,2],worksheet.Cells[ds.Tables[0].Rows.Count+1,2]);rg.NumberFormat="00000000";}if(saveFileName!=""){try{workbook.Saved=true;workbook.SaveCopyAs(saveFileName);fileSaved=true;}catch(Exceptionex){fileSaved=false;MessageBox.Show("导出文件时出错,文件可能正被打开!n"+ex.Message);}}else{fileSaved=false;}xlApp.Quit();GC.Collect();//强行销毁if(fileSaved&&System.IO.File.Exists(saveFileName))System.Diagnostics.Process.Start(saveFileName);//打开EXCEL}