打开一个Excel模板文件填充数据另存为一个文件

最近做的东西要求打开一个Excel文件模板后填充数据
开始用OleDb连接该Excel文件更新老是出错误 “需要一个可更新的.....“
http://expert.csdn.net/Expert/topic/2992/2992809.xml?temp=.4825403
如果是access这个错误多半是权限引起的 可是我做的是winform 权限是admin啊
未果
后来用ODBC测试了几个字段 都成功了
开始写程序 后发现就有那么2个单元格不听话 提示参数错误
郁闷
http://expert.csdn.net/Expert/topic/3000/3000113.xml?temp=.3331262
仍未果
没办法翻google
获得
http://www.c-sharpcorner.com/winforms/ExcelReadMG.asp
用com组件,可行哦,今早上csdn就有网友pm我问是如何搞定的
那就写到这里,
以下是部分代码,使用前要先按上文中的说明添加Com引用
...........
string strFileName = Environment.CurrentDirectory+@"\template\template.tpl";
    string strSaveFileName =
Environment.CurrentDirectory+@"\excel\"+System.DateTime.Now.ToString().Replace(":","").Replace("-","").Replace(" ","")+@".xls";
    Excel.Application ThisApplication = new Excel.ApplicationClass();
    Excel.Workbook ThisWorkBook;
    object missing = System.Reflection.Missing.Value;
    try
    { 
     //加载Excel模板文件
     ThisWorkBook = ThisApplication.Workbooks.Open(strFileName,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing);
     Excel.Worksheet ThisSheet = (Excel.Worksheet)ThisWorkBook.Sheets[1];
     ThisSheet.Cells[7,1] = dtEnd.ToShortDateString();
     progressBar.Value = 30;
     ThisApplication.Visible = false;
     DataRow dr = dt.Rows[0];
     for( int i=0; i     {
      ThisSheet.Cells[7,i+2] = dr[i].ToString();
      progressBar.Value +=1;
     }
     //更新数据后另存为新文件
     ThisSheet.SaveAs(strSaveFileName,missing,missing,missing,missing,missing,missing,missing,missing);
    }
    catch{}
    finally
    {
     ThisApplication.Quit();
     ThisWorkBook = null;
     ThisApplication = null;
     //dt = null;
    }
    try
    { //打开刚才生成的Excel文件
     Excel.Workbook NewWorkBook;
     NewWorkBook = NewApplication.Workbooks.Open(strSaveFileName,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing);
     Excel.Worksheet NewSheet = (Excel.Worksheet)NewWorkBook.Sheets[1];
     NewApplication.Visible = true;

//也可以使用System.Diagnostics.Process.Start(strSaveFileName);来打开新文件

    }

打开Excel后进程内会多出一个excel进程
需要手工清理
参考这片文章

http://www.eggheadcafe.com/articles/20021012.asp

http://www.aspxboy.com/476/archive.aspx

Tag标签: asp.net,.net

posted on 2004-04-27 08:50 武眉博<活靶子.Net> 阅读(10663) 评论(4)  编辑 收藏 所属分类: Asp.Net

评论

#1楼  2005-03-18 11:41 yanghongyan [未注册用户]

template.tpl是个什么东东?   回复  引用    

#2楼  2005-04-28 16:53 ly [未注册用户]

晕,我上周也是要搞这问题,出是出来了,不过弄得郁闷,.

早知道这有就多等几天 .哈哈   回复  引用    

#3楼  2005-08-05 00:45 Leon - iDotnet      

其实用xslt更加方便,连图片都可以显示。   回复  引用  查看    

#4楼  2006-02-25 11:55 kitten [未注册用户]

strSaveFileName 是不是这样写的啊啊?
我运行有错误啊??
各位大虾指教哦   回复  引用    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-04-03 19:25 编辑过


相关链接:
 



导航

公告

广告开始
广告结束

本blog文字只代表靶子某一时间内的观点或结论,与本人所在公司没有任何关系,对其的正确性没有任何担保或假设,如要发表评论请先看清楚日期。 另:本人有权认定一个回复是否包含广告或者其他恶意内容并删除,谢谢!。

统计

与我联系

搜索

 

留言簿(51)

我参加的小组

我参与的团队

我的标签

随笔分类(186)

随笔档案(147)

相册

收藏夹(328)

常去链接

我的东西

友情博客

积分与排名

最新评论

阅读排行榜

评论排行榜

 武眉博联系电话:029-83099661  上官艳丽联系电话:029-83700139