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

原创 2005年04月02日 04:10:00
 最近做的东西要求打开一个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<dt.Columns.Count;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

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

string strFileName = Environment.CurrentDirectory+@"/template/template.tpl";    string strSaveFileNa...
  • 21aspnet
  • 21aspnet
  • 2007年03月22日 00:21
  • 4826

简单实现网页另存为word或者excel

IO的简单应用
  • xvshu
  • xvshu
  • 2013年11月14日 00:04
  • 5338

解决Excel 2010打开两个以上文件时,总只显示一个窗口

用Excel 2010打开两个以上文件时,总只显示一个窗口。 解决方法,打开注册表编辑器,(点运行,输入regedit)定位到 HKEY_CLASSES_ROOT\Excel.Sheet....
  • shine_journey
  • shine_journey
  • 2016年01月26日 15:46
  • 2533

vb读取WPS的EXCEL文档并另存为其他

Dim xlApp Dim xlApp2 Dim xlBook Dim xlBook2 Dim xlSheet Dim xlSheet2 Dim getPath Dim savePath...
  • sofeien
  • sofeien
  • 2014年10月13日 15:20
  • 2005

解决:每次打开一个EXCEL都会自动打开另外一个EXCEL文件

最近电脑不知道是怎么了,每次打开一个excel文件,都会自动打开一个名为RESULT.xls文件。 总结解决方法如下 : (1)确认打开的Excel没有写宏代码,可能电脑中了宏病毒,需要杀...
  • lyjluandy
  • lyjluandy
  • 2012年07月04日 14:25
  • 14201

vb打开并重新保存EXCEL文件

使用以下代码可实现打开并重新保存EXCEL文件,从而解决从程序导出的EXCEL文件格式不能被ADO访问的问题,据实验,光是处理一个文件的话需要5秒钟左右,但若批量一起处理的话能缩短到1秒/文件左右. ...
  • changleqy
  • changleqy
  • 2007年08月01日 15:43
  • 6574

Excel的文件打开特别慢,xls文件特别大解决一例

Excel的文件打开特别慢,xls文件特别大解决一例打开Excel的xls文件打开特别慢,而且操作也非常慢,动辄需要10几20分钟,很不正常。一个简单的Excel的xls文件有10几兆,甚至几百兆的大...
  • JohnPhan
  • JohnPhan
  • 2010年02月25日 08:55
  • 16408

java 下载样板Excel文件

// 下载本地文件 String fileName = "苹果知识库授权网点整理汇总副本20130210.xls".toString(); // 文件的默认保存名 //File file = ne...
  • xb12369
  • xb12369
  • 2013年03月13日 16:49
  • 7548

POI导出excel并弹出另存为窗口

/** * 导出离职记录 * @param request * @param response */ public void outputLeave(...
  • zhongyuan_1990
  • zhongyuan_1990
  • 2014年07月18日 18:59
  • 667

打开excel自动自动打开personal.xlsb表格文件

用过宏后会自动打开一个PERSONAL.XLSB的表格,删除方法很简单,按照目录:“C:\Documents and Settings\Administrator\Application Data\M...
  • supegan1989
  • supegan1989
  • 2016年03月01日 16:26
  • 412
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:打开一个Excel模板文件填充数据另存为一个文件
举报原因:
原因补充:

(最多只允许输入30个字)