2

我想读取 excel 文件中的每个单元格值,但即使在 NET 中尝试了不同的示例后,我也无法获取单元格值。我没有得到以下代码的结果,任何人都可以回到这个问题上。我正在使用 .net 框架 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();
}
4

3 回答 3

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());
}
于 2013-04-25T11:45:38.707 回答
1

正确的答案是使用:

Sheet.Cells[row,col].Value.ToString();
于 2014-04-07T10:06:24.993 回答
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);
于 2016-11-22T04:06:46.330 回答