如何从现有excel文件中读取单元格值

时间:2013-04-25 11:14:10

标签: c# excel

我想读取excel文件中的每个单元格值,但即使在.NET中尝试不同的示例后,我也无法获取单元格值。我没有得到以下代码的结果,任何人都可以得到这个。我正在使用.net framework 2.0

string filePath = "F:/BulkTest.xlsx";
Microsoft.Office.Interop.Excel.Application ExcelApp = new Microsoft.Office.Interop.Excel.Application();
ExcelApp.Visible = true;
Microsoft.Office.Interop.Excel.Workbook wb = ExcelApp.Workbooks.Open(filePath, Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value);

Microsoft.Office.Interop.Excel.Worksheet sh = (Microsoft.Office.Interop.Excel.Worksheet)wb.Sheets["Sheet1"];
Range excelRange = sh.UsedRange;

for (int i=2; i<= excelRange.Count + 1 ; i++)
{
    string values = sh.Cells[i,2].ToString();
}

3 个答案:

答案 0 :(得分:7)

  

直到现在我正在尝试将单元格值直接转换为变量,现在我将尝试使用Range将单元格值转换为数组。谢谢!!!! - Teja Varma 13分钟前

没有。我甚至不是那个意思:)正如我在评论中提到的那样,你可以将整个范围存储在一个数组中。这并不意味着您需要循环每个单元格以将其存储在数组中。您可以直接将范围的值分配给数组。见这个例子。

xlRng = xlWorkSheet.get_Range("A1", "A20");

Object arr = xlRng.Value;

foreach (object s in (Array)arr)
{
    MessageBox.Show(s.ToString());
}

答案 1 :(得分:2)

正确的答案是使用:

Sheet.Cells[row,col].Value.ToString();

答案 2 :(得分:0)

C#代码
测试好了

string s = xlSheet.UsedRange.Cells[1,   7].Value.ToString();
//or
string d = xlSheet.UsedRange.Cells[1, "G"].Value.ToString();


完整代码

        Excel.Application xlApp = new Excel.Application();
        Excel.Workbook xlBook;
        Excel.Worksheet xlSheet;

        string Path = System.IO.Path.GetDirectoryName(Application.ExecutablePath);

        xlBook = xlApp.Workbooks.Open(Path + "\\myfile.xlsx");
        xlApp.Visible = true;
        xlSheet = xlBook.ActiveSheet;

        string s = xlSheet.UsedRange.Cells[1, 7].Value.ToString();
        string d = xlSheet.UsedRange.Cells[1, "G"].Value.ToString();

        xlBook.Close();
        xlApp.Quit();

        System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheet);
        System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBook);
        System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);