在csdn上面找了许多关于excel的帖子,要么是直接打开一个已经存在的excel文件,然后往里面写数据。要么是创建一个弹出对话框的excel,然后提示你保存。
Excel.Application xlApp;
xlApp=new Excel.ApplicationClass();
xlApp.Application.Workbooks.Add(true);
xlApp.cells[i][j]=value; xlApp.ActiveWorkbook.SaveCopyAs(strPath); xlApp.Quit();
xlApp=null;
GC.Collect();
用这个办法是可以保存第一次,但是第2次再执行的时候会出现提示。有没有什么办法直接创建一个excel文件到本地硬盘上,不出现任何提示的程序?谢谢!
Excel.Application xlApp;
xlApp=new Excel.ApplicationClass();
xlApp.Application.Workbooks.Add(true);
xlApp.cells[i][j]=value; xlApp.ActiveWorkbook.SaveCopyAs(strPath); xlApp.Quit();
xlApp=null;
GC.Collect();
用这个办法是可以保存第一次,但是第2次再执行的时候会出现提示。有没有什么办法直接创建一个excel文件到本地硬盘上,不出现任何提示的程序?谢谢!
解决方案 »
- C#将二进制流转换为图片
- WinForm的DataGridView如何设置选中某一行?
- 借人气问个算法.
- 有关网站的页头、页脚独立出来的实现问题
- 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 c#中AxWindowsMediaPlayer有rate个属性吗?[
- 【請益】datable資料轉存入IDictionary
- 怎样获取script写的模板中的值
- 基本问题疑问
- 前几天写好的c#的webform的asp.net 的程序还能运行起来,现在突然数据都不见了?
- C# 如何封装这个猜数的方法,还有。。。有什么地方需要在改进的吗?谢谢
- 如何不继承基类窗口中的事件呀!
- vs.net web Forms
Excel.Workbook oBook;
Object oMissing = System.Reflection.Missing.Value;
oExcel = new Excel.Application();
oBook = oExcel.Workbooks.Add(oMissing);
for (int i=1;i<=4;i++)
{
oExcel.Cells[i,1]=i.ToString();
oExcel.Cells[i,2]="'bbb2";
oExcel.Cells[i,3]="'ccc3";
oExcel.Cells[i,4]="'aaa4";
}
oBook.Saved = true;
oExcel.UserControl = false;
string mm=Server.MapPath(".")+"\\aa.xls";//服务器保存地址
oExcel.ActiveWorkbook.SaveCopyAs (mm);
oExcel.Quit();
Response.Redirect ("aa.xls");//注意上保存和调用时的路径。
{
object oMissing = System.Reflection.Missing.Value;
Excel.ApplicationClass xlApp = new Excel.ApplicationClass();
try
{
// 打开Excel文件。以下为Office 2000.
Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(filePath, oMissing, oMissing, oMissing, oMissing, oMissing,
oMissing, oMissing, oMissing, oMissing, oMissing, oMissing,
oMissing);
Excel.Worksheet xlWorksheet;
// 循环所有DataTable
for( int i=0; i<ds.Tables.Count; i++ )
{
// 添加入一个新的Sheet页。
xlWorksheet = (Excel.Worksheet)xlWorkbook.Worksheets.Add(oMissing,oMissing,1,oMissing);
// 以TableName作为新加的Sheet页名。
xlWorksheet.Name = ds.Tables[i].TableName;
// 取出这个DataTable中的所有值,暂存于stringBuffer中。
string stringBuffer = "";
for( int j=0; j<ds.Tables[i].Rows.Count; j++ )
{
for( int k=0; k<ds.Tables[i].Columns.Count; k++ )
{
stringBuffer += ds.Tables[i].Rows[j][k].ToString();
if( k < ds.Tables[i].Columns.Count - 1 )
stringBuffer += "\t";
}
stringBuffer += "\n";
}
// 利用系统剪切板
System.Windows.Forms.Clipboard.SetDataObject("");
// 将stringBuffer放入剪切板。
System.Windows.Forms.Clipboard.SetDataObject(stringBuffer);
// 选中这个sheet页中的第一个单元格
((Excel.Range)xlWorksheet.Cells[1,1]).Select();
// 粘贴!
xlWorksheet.Paste(oMissing,oMissing);
// 清空系统剪切板。
System.Windows.Forms.Clipboard.SetDataObject("");
}
// 保存并关闭这个工作簿。
xlWorkbook.Close( Excel.XlSaveAction.xlSaveChanges, oMissing, oMissing );
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlWorkbook);
xlWorkbook = null;
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
// 释放...
xlApp.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);
xlApp = null;
GC.Collect();
}
}
异常详细信息: System.UnauthorizedAccessException: 拒绝访问。
ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}\ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。 若要授予 ASP.NET 对文件的写访问权,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。
源错误:
行 54: oExcel = new Excel.Application();
哪位大大给解释一下?