![](/img/trans.png)
[英]What do i need to use SIMD with visual studio 2013 update 2?
[英]What do I need to do to set up Visual Studio to be able to manipulate an Excel File?
假设我想在Excel文件中找到单元格的值。 在VBA中,我会这样做:
Dim varValue As Variant
Dim wb As Workbook
Dim ws As Worksheet
Set wb = ThisWorkbook
Set ws = wb.Worksheets("Sheet1")
varValue = ws.Range("A1").Value
如何设置Visual Studio项目以便我可以在C#中而不是在VBA中访问和修改Excel文件?
我可能需要添加哪些参考?
该文件是否需要打开才能使用它?
您可以使用Excel自动化或第三方库。
若要使用Excel自动化,您应安装Office PIA并添加对Microsoft.Office.Interop.Excel.dll
的引用。 然后,您将编写代码来打开文件(使用ApplicationClass
类)并对其进行操作。
此方法将使用您在VBA中使用的相同对象模型。 但是,由于C#3不支持可选参数或弱类型,因此会有些烦人。 在VB .Net或C#4(目前处于测试阶段)这样做会更容易
Excel自动化不适用于在非交互式上下文中运行的代码。 有许多完全用.Net编写的第三方库可以读写Excel文件。
此外,如果您只需要操作类似表的数据,则可以使用OleDb使用此连接字符串对Excel文件运行SQL语句。
您可以使用OleDbCommand
来运行SELECT * FROM [SheetName]
,假设工作表是一个表。 您也可以从命名范围中进行选择。 您可以通过调用oleDbConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null)
并查看返回的DataTable中的TABLE_NAME
列来获取可用表。
我编写了自己的,相当简单的类,通过C#从Excel电子表格中提取数据。 你需要包括:
using Microsoft.Office.Interop;
然后你可以做这样的事情来开始:
Excel.Application excel;
Excel.Workbook workbook;
Excel.Worksheet worksheet;
Excel.Sheets sheets;
Excel.Range range;
excel = new Microsoft.Office.Interop.Excel.Application();
workbook = excel.Workbooks.Open(workbookName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
sheets = workbook.Worksheets;
...
您不必使用互操作。
你只需要参考......
System.Data.OleDb
您可以像定义任何其他数据源一样定义连接字符串:
string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=YourPath;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";";
并添加一些代码来查询您的数据库:
OleDbConnection objConnection = new OleDbConnection();
string strSQL = "SELECT * FROM [YourTable]";
objConnection = new OleDbConnection(connectionString);
objConnection.Open();
OleDbCommand cmd = new OleDbCommand(strSQL, objConnection);
DataTable dt = new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
da.Fill(dt);
...然后枚举您的数据行。
您必须使用Microsoft.Office.Interop.Excel。 您需要使用COM Interop。 这是一个关于它是如何完成的详细教程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.