【问题标题】:C# Accessing Excel WorksheetC# 访问 Excel 工作表
【发布时间】:2009-09-23 19:19:47
【问题描述】:
这是访问 MS Office Excel 2007 文件的正确方法吗?
String connString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + file_path + ";Extended Properties=Excel 8.0;";
如果是这样,我如何访问某个工作表并插入行?也欢迎提供链接。
【问题讨论】:
标签:
c#
excel
ms-office
connection-string
【解决方案2】:
您可以使用Excel Interop (Microsoft.Office.Interop.Excel):
这是一些代码的sn-p:
object missing = (object) Type.Missing;
Application app = new Application();
Workbooks books = app.Workbooks;
Workbook book = books.Open("somefile.xls", missing, missing, missing, missing, missing, missing,
missing, missing, missing, missing, missing, missing, missing, missing);
Worksheet sheet = (Worksheet)book.Worksheets[1];
它有一些奇怪的地方(比如那些“缺失”的参数),但它工作得非常顺利。如果您采用这种方法,请注意不要让 EXCEL.exe 进程成为孤立进程。
【解决方案3】:
连接字符串
connectionString = @"provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filename + @";Extended Properties=""Excel 12.0;HDR=YES;IMEX=1""";
读取数据
excelConnection = new System.Data.OleDb.OleDbConnection(connectionString);
excelConnection.Open();
dbSchema = excelConnection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
firstSheetName = dbSchema.Rows[0]["TABLE_NAME"].ToString();
strSQL = "SELECT * FROM [" + firstSheetName + "]";
da = new OleDbDataAdapter(strSQL, excelConnection);
da.Fill(dt);
写入数据见Excel Generation 虽然这使用了自动化。它可能会有所帮助。