如何从excel单元格中提取字符串?

时间:2011-04-13 08:03:35

标签: c# string excel cell

我知道如何写入单元格,但是如何将excel文件中单元格内已写入的字符串写入字符串对象中,以便用它在其他单元格中生成数据?

到目前为止我的代码:

        Excel.ApplicationClass excelApp = new Excel.ApplicationClass();

        excelApp.Visible = true;

        Excel.Workbook excelWorkbook = excelApp.Workbooks.Open("C:\\Users\\user\\Desktop\\list.xls", 0, false, 5, "", "",
        false, Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);

        Excel.Sheets excelSheets = excelWorkbook.Worksheets;

        string currentSheet = "Sheet1";
        Excel.Worksheet xlws = (Excel.Worksheet)excelSheets.get_Item(currentSheet);

我可以使用以下内容来操作单元格内容:

xlws.Cells[1,1] = "foo";

但我遇到了相反的问题,那就是在我的程序中将单元格内容读入一个字符串。

任何帮助都将不胜感激。

6 个答案:

答案 0 :(得分:7)

<击> string myString = xlws.Cells[1, 1].Value as string;

string myString = ((Excel.Range)workSheet.Cells[1, 1]).Value2.ToString();

答案 1 :(得分:6)

要避免NullReferenceException,请不要将.ToString()直接用于可以为空的类型objectdynamicstring等。 )。以下是将对象转换为字符串的几种更安全的方法:

答案 2 :(得分:2)

xlws.Cells [1,1] .Value 的类型为对象。所以你应该指明类型 例如:

xlws.Cells[1,1].Value.ToString();

答案 3 :(得分:2)

有两种方法可以从excel docuemnt获取值,但我认为您正在寻找的方式是:

Range range = xlws.get_range("A1", "A1");
object[] data = range.get_Value(XlRangeValueDataType.xlRangeValueDefault);
string str = (string)data[0];

一篇很好的文章解释了其他方法[{3}}

希望有所帮助。

答案 4 :(得分:1)

string val = sheet.Cells [1,6] .Text;

这是从单元格获取文本的最佳方法。 我可以在没有任何变化的情况下获得相同的文本。

答案 5 :(得分:0)

I can suggest one more way is (If you need to read string from row 3 column "I":
    Excel.Application objExcel = new Excel.Application();
    objExcel.Visible = true;
    Excel.Workbook objBook = o     objExcel.Workbooks.Open("C:\\myexcel.xlsx");
    Excel.Worksheet objsheet =  objBook.Worksheets["Sheet1"];
    string a = Convert.ToString(objsheet.Cells.get_Item(3,"I").Value);