求教winform追写excel的问题,感谢大神

gijquery4 2013-08-29 05:57:38
需求是将datatable的数据写到excel中,不是一次性写到excel中,而是需要向excel追写数据。

我在网上找了好久关于向excel追写数据的文章,可是没有找到。

请教各位大神,这个需求用NPOI能实现么?应该如何实现呀?

跪谢跪谢跪谢
...全文
123 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
gijquery4 2013-08-30
  • 打赏
  • 举报
回复
求帮助哦 。。
gijquery4 2013-08-30
  • 打赏
  • 举报
回复
求帮助哦 ,
江湖评谈 2013-08-30
  • 打赏
  • 举报
回复
直接使用ActiveX控制Office比较方便的 private Missing miss=Missing.Value; //忽略的参数OLENULL public static Missing MissValue=Missing.Value; private Excel.Application m_objExcel;//Excel应用程序实例 private Excel.Workbooks m_objBooks;//工作表集合 private Excel.Workbook m_objBook;//当前操作的工作表 private Excel.Worksheet sheet;//当前操作的表格 public void OpenExcelFile(string filename) { m_objExcel = new Excel.Application(); UserControl(false); m_objExcel.Workbooks.Open( filename, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss); m_objBooks = (Excel.Workbooks)m_objExcel.Workbooks; m_objBook = m_objExcel.ActiveWorkbook; sheet = (Excel.Worksheet)m_objBook.ActiveSheet; } public void CreateExceFile() { m_objExcel = new Excel.Application(); UserControl(false); m_objBooks = (Excel.Workbooks)m_objExcel.Workbooks; m_objBook = (Excel.Workbook)(m_objBooks.Add(miss)); sheet = (Excel.Worksheet)m_objBook.ActiveSheet; } public void SaveAs(string FileName) { m_objBook.SaveAs(FileName, miss, miss, miss, miss, miss, Excel.XlSaveAsAccessMode.xlNoChange, Excel.XlSaveConflictResolution.xlLocalSessionChanges, miss,miss, miss, miss); //m_objBook.Close(false, miss, miss); } public void setValue(int x,int y,string text,System.Drawing.Font font,System.Drawing.Color color) { this.setValue(x,y,text); Excel.Range range=sheet.get_Range(this.GetAix(x,y),miss); range.Font.Size=font.Size; range.Font.Bold=font.Bold; range.Font.Color=color; range.Font.Name=font.Name; range.Font.Italic=font.Italic; range.Font.Underline=font.Underline; } private string AList="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; public string GetAix(int x,int y) { char [] AChars=AList.ToCharArray(); if(x>=26){return "";} string s=""; s=s+AChars[x-1].ToString(); s=s+y.ToString(); return s; }
gijquery4 2013-08-30
  • 打赏
  • 举报
回复
引用 4 楼 czz65979674 的回复:
string strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;"; strConnection += @"Data Source=C:\test.xlsx;"; strConnection += "Extended Properties=\"Excel 12.0 Xml;HDR=YES\";"; OleDbConnection objConnection = new OleDbConnection(strConnection); objConnection.Open(); 这是打开ECELE的 链接 就可以像追加数据库一样往里面追加了 例如:string sqlstr="insert [Sheet1$] set id=1" 那么 OleDbDataAdapter myCommandd = new OleDbDataAdapter(sqlstr, objConnection); myCommandd.ExecuteNonQuery();//这样就执行完了 EXCLE的写法 我记得也不多了 你可以去看看EXCLE的OLEDB方式 不过我是认为你只是 数据写入 取出的话 不做EXCLE 用CSV方式更好,也能以EXCLE方式打开 数据里的字段也能自动换单元格
谢谢哦
czz65979674 2013-08-30
  • 打赏
  • 举报
回复
string strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;"; strConnection += @"Data Source=C:\test.xlsx;"; strConnection += "Extended Properties=\"Excel 12.0 Xml;HDR=YES\";"; OleDbConnection objConnection = new OleDbConnection(strConnection); objConnection.Open(); 这是打开ECELE的 链接 就可以像追加数据库一样往里面追加了 例如:string sqlstr="insert [Sheet1$] set id=1" 那么 OleDbDataAdapter myCommandd = new OleDbDataAdapter(sqlstr, objConnection); myCommandd.ExecuteNonQuery();//这样就执行完了 EXCLE的写法 我记得也不多了 你可以去看看EXCLE的OLEDB方式 不过我是认为你只是 数据写入 取出的话 不做EXCLE 用CSV方式更好,也能以EXCLE方式打开 数据里的字段也能自动换单元格
gijquery4 2013-08-29
  • 打赏
  • 举报
回复
求帮助哦

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧