打开一个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

相关文章推荐

C#向EXCEL模板文件中插入数据行

  • 2012年11月26日 15:31
  • 262KB
  • 下载

Excel VBA-批量将多个sheet表另存为单独的工作薄文件

欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图...

文件的打开保存另存为功能代码实现

(效果图) import java.awt.BorderLayout; public class NotePad {     private JFrame jf;          pri...

Java编写的简易记事本例子 打开另存为文件操作

这篇文章给大家了一个简易记事本Demo。主要介绍JAVA中打开文件和另存为文件的一种做法。用到Java Swing 和 IO的内容。 开始之前先介绍两个类 javax.swing.JFil...

向EXCEL模板文件中写入数据和插入新行

在很多情况下,我们需要将程序产生的一些数据按照一些用户要求的EXCEL文件模板格式进行填写,将指定的数据项写入指定的单元格。在某些特定的情况下,可能还需要进行动态的行插入,比如数量不确定的点坐标信息,...

使用jxl读取模板文件,写入数据并导出excel

使用jxl读取模板文件,写入数据并导出excel这里为了方便全写在一个main方法里面了。package com.excel.jxl.readexport;import com.excel.jxl.m...

springMvc 中 Excel批量数据上传,利用POI解析数据保存入数据库 及模板文件下载

1、SpringMVC文件上传,保存后对文件进行解析数据,并保存到数据库 2、SpringMVC文件下载。...

excel的sheet另存为excel文件。

  • 2015年07月09日 16:08
  • 979B
  • 下载

Eclipse的一个注释模板文件

/** * @Fields: ${field} * @Todo: ${todo} */ /** * @FileName: ${file_name} * @Package:${pac...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:打开一个Excel模板文件填充数据另存为一个文件
举报原因:
原因补充:

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