在文件excel中搜索日期字符串

时间:2015-03-10 16:00:53

标签: c# excel

我正在使用excel文件,我正在尝试找到日期值如“16/02/2015”作为内容的单元格的位置(地址)。为了使用Windows窗体应用程序执行此操作,我使用datetimepicker。我的代码如下:

// Firstly I want a string like 16/02/2015 inserted in the datetimepicker
string date = DateTimePicker1.Value.ToString().Substring(0,10); 

        List<string> Testsdone = new List<string>();          

        Excel.Application xlApp;
        Excel.Workbook xlWorkBook;
        Excel.Worksheet xlWorkSheet;
        object misValue = System.Reflection.Missing.Value;

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


        Excel.Range currentFind = null;
        Excel.Range firstFind = null;


        Excel.Range tests = xlWorkSheet.get_Range("K13", "K2295");
                    currentFind = tests.Find(date);
        .....

我的excel文件中写有完全相同的内容“16/02/2015”,但currectFind始终显示为null!我不知道为什么这两个“16/02/2015”是不同的。有人有个主意吗?谢谢!

1 个答案:

答案 0 :(得分:0)

经过一些调查后我发现问题是由Find函数引起的

currentFind = tests.Find(date);

由于未知原因未能找到日期。从另一篇文章 how to Search in excel file我得到了这个方法,我将其改为:

currentFind = xlworkSheet.Cells.Find(date, Type.Missing, Microsoft.Office.Interop.Excel.XlFindLookIn.xlValues,             Microsoft.Office.Interop.Excel.XlLookAt.xlWhole,   Microsoft.Office.Interop.Excel.XlSearchOrder.xlByRows,Microsoft.Office.Interop.Excel.XlSearchDirection.xlNext, false,Type.Missing, Type.Missing);

它有效。但我仍然不知道为什么Excel.Range.Find失败并且Excel.workersheet.Cells.Find工作