0
点赞
收藏
分享

微信扫一扫

net 操作 EXCEL

灵魂跑者 2022-11-29 阅读 133


.net 操作 EXCEL



背景:
  在项目中,需要操作EXCEL 文档,本以为是OBA的应用,但其实不然。OBA是在EXCEL中嵌入.net应用插件,而我们则是需要在SCSF中操作EXCEL。
  我大致调查了一下,主要发现3种方式。
  1:使用Microsoft.Office.Interop.Excel,调用EXCEL COM组件,操作EXCEL文件
  2:使用OleDb 操作EXCEL数据源,进而利用ADO.net。
  3:使用OPEN XML,访问EXCEL zip文件并使用DOM。
  实现:
  1:使用.NET 调用COM

 




<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->

private static Microsoft.Office.Interop.Excel.Application xApp;

net 操作 EXCEL_microsoft_03

net 操作 EXCEL_microsoft_03

net 操作 EXCEL_microsoft_03

net 操作 EXCEL_microsoft_03

..

if (xApp == null)

xApp = new Microsoft.Office.Interop.Excel.ApplicationClass();

Microsoft.Office.Interop.Excel.Workbook xBook = null;

xApp.Visible = false;

try

{

xBook = xApp.Workbooks._Open(@"c:\待发工资.xlsx", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);

Microsoft.Office.Interop.Excel.Worksheet xSheet = (Microsoft.Office.Interop.Excel.Worksheet)xBook.Sheets[1];

//Excel.Worksheet xSheet=(Excel.Worksheet)xApp.ActiveSheet;

//Microsoft.Office.Interop.Excel.Range rng1 = xSheet.get_Range("A1", Type.Missing);

                Microsoft.Office.Interop.Excel.Range cell = (Microsoft.Office.Interop.Excel.Range)xSheet.Cells[2, 1];

string str = "";

for (int i = 2; cell.Value2 != null; i++)

{

str += cell.Value2.ToString() + ".";

cell = (Microsoft.Office.Interop.Excel.Range)xSheet.Cells[2, i];

}

MessageBox.Show(str);

xBook.Close(Microsoft.Office.Interop.Excel.XlSaveAction.xlDoNotSaveChanges, @"c:\待发工资.xlsx", Missing.Value);

xApp.Quit();

}

catch (Exception ex)

{

Console.WriteLine(ex.Message.ToString());

}

///


  

 

2: 使用oleDB(VSTS2008+Excel 2007) 



 

3:使用OPENXML (比较复杂的说)

 



 

 


举报

相关推荐

0 条评论