C#使用Microsoft.Office.Interop.Excel读取数据

曼尼克9

我有一个数据表,我需要根据用户输入从excel中读取数据并将其作为数组存储在VS中。

如果用户输入C1,则搜索并获取相关数据:

阵列[0]:X1E1M101

阵列[1]:F2G1M202

如果用户输入C2:

阵列[0]:X1E1M105

阵列[1]:F1G2M304


我的数据:

     A      B      C     D     E
1   C1
2
3   X1     E1     M1     01 
4   F2     G1     M2     02
5
6   C2
7
8   X1     E1     M1     05 
9   F1     G2     M3     04
10

我的代码:

//I declared the Interop
using Excel = Microsoft.Office.Interop.Excel;


        Excel.Application xlApp;
        Excel.Workbook xlWorkBook;
        Excel.Worksheet xlWorkSheet;
        Excel.Range range;

        xlApp = new Excel.Application();
        xlWorkBook = xlApp.Workbooks.Open(ManufacturingFile);
        //xlWorkSheet = ("Default Value");  // i get an error here when trying to define the worksheet name i want to select. "Cannot impicitly convert type string to ... excel.worksheet'

        xlWorkSheet = ((Excel.Worksheet)this.Application.ActiveWorkbook.Sheets[1]).Select(); // This method also I get an error.
        xlWorkSheet.Activate(); 

由于使用Interop是新手,因此在这部分之后我会陷入困境。希望有人能帮助我,我是C#的初学者,非常感谢您的帮助。

阿希拉

您将需要打开woorkbook和工作表,这里有许多示例说明了如何执行此操作,下面是一个示例

      Excel.Application xlApp;
        Excel.Workbook xlWorkBook;
        Excel.Worksheet xlWorkSheet;
        Excel.Range range;

        string str;
        int rCnt = 0;
        int cCnt = 0;

        object misValue = System.Reflection.Missing.Value;

        xlApp = new Excel.Application();
        xlWorkBook = xlApp.Workbooks.Open("testone.xlsx", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
        xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);


        range = xlWorkSheet.UsedRange;

        Microsoft.Office.Interop.Excel.Range xlFound =range.EntireRow.Find("C2",misValue, Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart,Excel.XlSearchOrder.xlByColumns,Excel.XlSearchDirection.xlNext,true, misValue, misValue);

        if (!(xlFound == null))
        {
            int ID_Number = xlFound.Column;
            int rownum = xlFound.Row;
            Console.WriteLine(ID_Number);
            Console.WriteLine(rownum);
            Console.Read();
        }

您可能首先获得搜索的范围值,例如,如果“ C1”位于a1,则必须从a(n + 2)读取整行,并在找到空行时停止。

上面的代码未编译,摘自此处

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Microsoft Office Interop Excel使用C#在excel图表中自定义数据标签

Office 2007的Microsoft.Office.Interop.Excel

如何使用Microsoft.Office.Interop.Outlook库通过C#读取.eml文件?

C#阅读使用的Microsoft.Office.Interop.Excel Excel单元格的值

Microsoft.Office.Interop.Excel读取错误的颜色?

使用Microsoft.Office.Interop.Excel的C#从其他WorkSheet添加新系列和范围

C#-Microsoft.Office.Interop.Excel.Sheets到Microsoft.Office.Interop.Excel.Worksheet []

如何在C#中使用Microsoft.Office.Interop.Excel添加数据透视表筛选器

Microsoft.Office.Interop.Excel的阅读范围

使用Microsoft.office.Interop.Excel读取Excel时性能降低

使用参考C#添加Microsoft.Office.InterOp.Word

使用Microsoft.Office.Interop Word和Excel

C#(Microsoft.Office.Interop.Excel),将数据另存为Excel 2003文件(xls)

使用Microsoft.Office.Interop.Excel时出现错误;带有C#中控件新点语法的名称空间

如何从C#(Microsoft.Office.Interop.Excel)中的数据透视表对象获取可见的PivotField对象

是否有Microsoft.Office.Interop.Excel的替代库?

Build Server中的Microsoft.Office.Interop.Excel参考

Microsoft.Office.Interop.Excel未注册DLL

无法添加对microsoft.office.interop.excel的引用

无法将类型为“ microsoft.Office.Interop.Excel.ApplicationClass”的COM对象转换为“ microsoft.Office.Interop.Excel.Application”

使用Office.Interop C#将格式应用于Excel命名范围

C# Microsoft.Office.Interop.Word 保护段落

我可以使用Microsoft.Office.Interop.Excel在未安装Microsoft Office Pack的系统上创建Excel文件吗?

在将数据表导出到Excel后使用Microsoft.office.interop.Excel日期格式问题

将WPF数据网格中超过100,000行的数据导出到Excel-C#Microsoft.Office Interop 14

没有安装Excel的情况下使用Microsoft.Office.Interop.Excel创建Excel文件

如何使用 Microsoft.Office.Interop.Word 在 C# 中编辑 docx 文件

使用Microsoft.Office.Interop.Outlook连接到Outlook的稳定性C#表单

C# 如何使用 Interop 从 Excel 读取和写入数据,而不使 Excel 可见?