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

本文关键字:提取 字符串 单元格 excel | 更新日期: 2023-09-27 17:50:16

我知道如何写入一个单元格,但我如何得到一个已经存在的字符串写入一个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";

但是我在做相反的事情时遇到了麻烦,那就是在我的程序中将单元格内容读取为字符串。

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

为了避免使用NullReferenceException,不要在可能为null的类型(object, dynamic, string等)上直接使用.ToString()。以下是将对象转换为字符串的几种更安全的方法:

  • Convert.ToString(object) -当对象为null时返回String.Empty

  • object?.ToString() - VS 2015空条件运算符返回null

  • object?.ToString() ?? "" - c#空合并运算符??当对象为空时返回""

  • object + "" - String。当对象为null时,Concat返回""

  • $"{object}" - VS 2015字符串插值在编译时转换为调用等效的String.Format("{0}", object)调用,并在对象为null时返回""

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

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

xlws。细胞[1]。值具有类型对象。所以你应该指出类型例如:

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

有几种方法可以从excel文档中获取值,但我认为您正在寻找的方法是:

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

这里有一篇很好的文章也解释了其他方法

希望对你有帮助。

string val = sheet。细胞(1,6)。text;

这是从单元格中获取文本的最佳方法。我可以得到相同的文本,没有任何改变

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);