Andrew Koval
Andrew Koval

Reputation: 1

import Excel sheet (double values) in WPF C#

I'm new to C# and WPF and i want to import Excel file to DataGrid in WPF in double format and than be able to work with this values.

I have an excel sheet with lot of double values:

76.0245 0.8145  0.1404  121.0000  15.2302    0.0322 0.1249  4.5966
83.2723 0.8184  0.1544  179.0000  10.7985    0.0113 0.1101  4.2184
81.5676 0.9220  0.2247  67.0000   55.7615    0.0026 0.1259  3.9835
71.6719 0.7182  0.0758  76.0000   49.7601    0.0140 0.1445  1.4708
83.1574 0.9266  0.1105  118.0000  28.8463   -0.0018 0.1328  1.3735
73.7841 0.8695  0.0656  90.0000   37.1378   -0.0146 0.1106  1.1112
60.5380 0.7402  0.0511  110.0000  19.1055    0.0415 0.1470  9.5646
82.0097 0.8280  0.1554  158.0000  26.5418    0.0263 0.1523  7.0651
63.3324 0.6976  0.0746  116.0000  18.5769    0.0279 0.1497  7.9727

How can i import all values in DataGrid in double format? I'm using code below to start opening this excel file:

private void button_Click(object sender, RoutedEventArgs e)
        {
OpenFileDialog openfile = new OpenFileDialog();
        openfile.DefaultExt = ".xlsx";
        openfile.Filter = "(.xlsx)|*.xlsx";
        //openfile.ShowDialog();

        var browsefile = openfile.ShowDialog();

        if (browsefile == true)
        {
            txtFilePath.Text = openfile.FileName;

            Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
            Microsoft.Office.Interop.Excel.Workbook excelBook = excelApp.Workbooks.Open(txtFilePath.Text.ToString(), 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
            Microsoft.Office.Interop.Excel.Worksheet excelSheet = (Microsoft.Office.Interop.Excel.Worksheet)excelBook.Worksheets.get_Item(1); ;
            Microsoft.Office.Interop.Excel.Range excelRange = excelSheet.UsedRange;
}

Upvotes: 0

Views: 1253

Answers (1)

djskj189
djskj189

Reputation: 295

    txtFilePath.Text = openfile.FileName;

    Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
    Microsoft.Office.Interop.Excel.Workbook excelBook = excelApp.Workbooks.Open(txtFilePath.Text.ToString(), 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
    Microsoft.Office.Interop.Excel.Worksheet excelSheet = (Microsoft.Office.Interop.Excel.Worksheet)excelBook.Worksheets.get_Item(1); ;
    Microsoft.Office.Interop.Excel.Range excelRange = excelSheet.UsedRange;

int rowCount = excelRange.Rows.Count
int colCount = excelRange.Columns.Count

for(int i = 1; i <= rowCount; i++)
{
    for(int j = 1; j <= colCount; j++)
    {
         double value = Convert.ToDouble(excelRange[i,j].Value2)
    }
}

this should get you the value in double

Upvotes: 2

Related Questions