打开一个Excel模板文件填充数据另存为一个文件
来源:互联网 发布:java里加密算法 编辑:程序博客网 时间:2024/04/28 07:15
最近做的东西要求打开一个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
开始用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模板文件填充数据另存为一个文件
- 打开一个Excel模板文件填充数据另存为一个文件
- 打开文件另存为操作
- gis c#另存为一个文档文件
- weka中将Instances另存为一个arff文件
- python实现excel表格相关信息的统计并另存为一个文件
- VBA 从一个未打开的Excel文件中读取数据到,已打开的文件中.
- 解决:每次打开一个EXCEL都会自动打开另外一个EXCEL文件
- [C#] Excel文件另存为Html
- 打开一个文件
- CreateFile打开一个文件
- MFC打开一个文件
- 如何用java程序直接打开一个Excel文件.
- com 打开一个excel文件[open函数] 解读
- 写一个excel文件
- 一个grunt文件模板
- java poi 打开 excel 文件 保留格式 修改内容 另存为新文件
- Java poi 打开 excel 文件 保留格式 修改内容 另存为新文件
- 当你的名字叫“男人”
- 当用protected访问修饰符修饰内部类时会怎样?
- 我的第一次汇编作业!
- 近日关注:Web服务,黎明前的跋涉
- 19条欠扁的短信息
- 打开一个Excel模板文件填充数据另存为一个文件
- 恶意网站zhao114代码的剖析
- 女人的32个秘密(英文版)
- 张国荣去世2周年
- Windows服务的一些解释
- 遗憾的思念
- 小猪MM 第一篇
- 操作简单XML文件
- 没有放弃的理由