Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Interop.Excel-读取数据类型_C#_Excel - Fatal编程技术网

C# Interop.Excel-读取数据类型

C# Interop.Excel-读取数据类型,c#,excel,C#,Excel,我正在将excel文件读入c#,只需要以数字开头的行。所有单元格的格式均为“常规”。我试着测试第一列中的值是否为Double,结果成功了。但有些行以“1”开头,有些行有小数位“1.1”。如何从小数中对整数进行排序?将它们视为字符串并测试“.”?我在excel中的格式选项似乎是一个数字,或者单元格是一个数字,或者不是。我不能指定int、double或任何东西。我怎样才能做到这一点 如果您只使用Excel 2007/2010(*.xlsx)文件,那么您可以使用官方的Microsoft assembl

我正在将excel文件读入c#,只需要以数字开头的行。所有单元格的格式均为“常规”。我试着测试第一列中的值是否为Double,结果成功了。但有些行以“1”开头,有些行有小数位“1.1”。如何从小数中对整数进行排序?将它们视为字符串并测试“.”?我在excel中的格式选项似乎是一个数字,或者单元格是一个数字,或者不是。我不能指定int、double或任何东西。我怎样才能做到这一点

如果您只使用Excel 2007/2010(*.xlsx)文件,那么您可以使用官方的Microsoft assembly(开放式XML SDK),它有许多强大的未来功能(包括按任何条件进行行过滤):

这是为了我的目的。我只能读取以数字开头的行,并从小数中过滤出整数(显示的是整数)。谢谢你的帮助

        Worksheet sheet = (Worksheet)workbook.Sheets[1];
        Range excelRange = sheet.UsedRange; 
        object[,] valueArray = (object[,])excelRange.get_Value(XlRangeValueDataType.xlRangeValueDefault);

        for (int i = 1; i <= excelRange.Rows.Count; i++)
        {
            if (valueArray[i, 1] is Double)
            {                   
                if (!valueArray[i, 1].ToString().Contains("."))
                {
                    sb.AppendLine(valueArray[i, 1].ToString()); 
                }
            }
        }
工作表工作表=(工作表)工作簿工作表[1]; 范围excelRange=sheet.UsedRange; 对象[,]值数组=(对象[,])excelRange.get_值(XlRangeValueDataType.xlRangeValueDefault);
对于(int i=1;我想区分
1
1.00000000
1.00002312
?不,这是类别和子类别的概要。2.6、10.2…这就是它的范围。如果有双精度,则
(val%1)==0
表示整数。如果超过小数点,则相反。