我如何从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";
但是我在做相反的事情时遇到了麻烦,那就是在我的程序中将单元格内容读取为字符串。
为了避免使用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);