检查excel行列

时间:2011-10-24 16:20:26

标签: c# datatable

在C#上工作。我需要读取excel文件然后需要检查所有行数据。为了解决这个问题,我按照以下步骤进行操作

1)Read the excel file.
2)put the excel file information in DataTable.

Order   Produ   price     quan   Discount
10248   11      14.0000   12     0
10248   42      9.8000    10     0
10248   72      34.8000   5      0
10249   14      18.6000   9      0
10249   51      42.4000   40     0

假设上面是我的 excel格式。我需要阅读它。我已经完成了步骤1和2.我需要帮助来检查excel行值,假设我的excel Discount列的一行包含ProductName.Than怎么做?我如何检查这种类型的错误以及如何避免这种类型的错误。我使用下面的语法来读取excel文件

OpenFileDialog oOpenFileDialog = new OpenFileDialog();
if (oOpenFileDialog.ShowDialog() == DialogResult.OK)
{
    txtFilePath.Text = oOpenFileDialog.FileName;
}
FileStream stream = File.Open(txtFilePath.Text, FileMode.Open, FileAccess.Read);


IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);

excelReader.IsFirstRowAsColumnNames = true;
DataSet result = excelReader.AsDataSet();

2 个答案:

答案 0 :(得分:0)

实现此目的的一种方法是使用OLED的OLEDB提供程序。您也不需要在服务器上安装excel。 在此选项中,您最终也会得到数据集,如果您遍历检索到的表的行,然后检查读取的数据类型,您应该能够确定读取的数据是否格式正确。 TryParse类函数可能会有所帮助。

Prasad Pimparkar

答案 1 :(得分:0)

 foreach (datarow item in DataTable.Rows)
    {

bellow语法给出了单元格数据类型。    现在使用cxcel row cell检查此类型。如果Type不匹配,则此单元格内容无效。         假设您的第一列是Int。如果一个单元格包含数据类型字符串,那么您的单元格内容无效

 //item[index].GetType()
}