从脏excel床单读取的最佳方式

时间:2010-03-19 21:14:23

标签: c# excel

我必须使用C#操作一些Excel文档。这是一个没有用户交互的批处理过程。它将数据解析到数据库中,然后输出漂亮的报告。数据非常脏,无法使用ADO准备就绪。数据远不是一个漂亮的表格格式。

Best被定义为最稳定(更新不太可能中断)/ clear(简洁)代码。快无所谓。如果它在不到8小时内运行我就没事了。

我有逻辑来找到解决的数据。我需要让它运行的是基本的单元格导航和getvalue类型的功能。如果它与Levenshtein距离<0匹配Y值,则将X单元格值作为字符串给出。 3,然后给我Z细胞值。

我的问题是,挖掘Excel的最佳方法是什么?

VSTO? Excel对象库? 第三种选择我不知道?

3 个答案:

答案 0 :(得分:2)

由于权限以及您的dll与您正在使用的文档挂钩的事实,VSTO有点痛苦。假设您实际上没有更改文件,并且ADO绝对不是一个选项,我会说通过Excel COM接口进行自动化是您最好的选择。它允许您按照通常的方式为任何其他应用程序编程,并为您提供与VSTO一样多的数据提取选项。

答案 1 :(得分:0)

Office程序可以作为.NET中的对象加载。以下是我用来将Excel加载到VB6中的编码存根。无论您使用哪种MS语言,代码基本上都是相同的。

Dim xlApp As New Excel.Application
Dim wb As Excel.Workbook
Dim ws As Excel.Worksheet

On Error Resume Next
wb = xlApp.Workbooks.Open("c:\testdata.xls")
If Err.Number > 0 Then
    If Err.Number = 1004 Then
        MsgBox("File not found")
    Else
        MsgBox("Error " & Err.Number & " occurred.")
    End If
    Exit Sub
End If

ws = wb.Sheets("Sheet1")
Text1.Text = ws.Cells(1, 1).Value

wb = Nothing
ws = Nothing
xlApp = Nothing

答案 2 :(得分:-1)