我需要做些什么来设置Visual Studio才能操作Excel文件?
比方说,我想在Excel文件中找到单元格的值。在VBA中,我这样做:我需要做些什么来设置Visual Studio才能操作Excel文件?
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文件?
我需要添加哪些参考?
是否该文件必须以与它的工作打开?
我写我自己的,相当简单的类从通过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;
...
您可以使用Excel自动化或第三方库。
使用Excel自动化,您应该安装Office PIA的,并添加一个引用Microsoft.Office.Interop.Excel.dll
。然后,您将编写代码来打开文件(使用ApplicationClass
类)并对其进行处理。
这种方法将使用你在VBA中使用同一个对象模型。但是,由于C#3不支持可选参数或弱类型,因此会有些恼人。这将是更容易做到这一点在VB .NET或C#4(目前处于测试阶段)
Excel的自动化是不适合在非交互的环境中运行的代码。有许多第三方库完全以.Net编写,可以读取和写入Excel文件。另外,如果您只需要操作类似于表的数据,则可以使用OleDb对this connection string的Excel文件运行SQL语句。
您可以使用OleDbCommand
s到运行SELECT * FROM [SheetName]
,假设表是一张桌子。您也可以从命名范围中进行选择。您可以通过调用oleDbConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null)
并查看返回的DataTable的TABLE_NAME
列来获取可用的表。
你不有互操作使用。
你只需要一个参考......
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);
...然后通过你的数据行枚举。
这仅在电子表格包含类似表格的结构并且对格式不感兴趣时才有用。看到我的答案。 – SLaks 2010-01-19 21:45:44
啊 - 指出。谢谢!如果其他人满足这些条件,我仍然会将答案留作参考。 – 2010-01-19 21:52:13
您还可以从COM选项卡中引用Microsoft Excel对象库。 – 2010-01-19 22:07:39