我怎样才能从Excel单元格中提取string?

我知道如何写入单元格,但是如何将已经存在的string写入excel文件的单元格中,并将其写入string对象,以便我可以使用它在其他单元格中生成数据?

我的代码到目前为止:

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

但是我却遇到了麻烦,就是在我的程序中把单元格内容读入string。

任何帮助,将不胜感激。

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

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

为了避免NullReferenceException ,请不要直接在可以为空的types( objectdynamicstring等)上使用.ToString() )。 这里有几个更安全的方法来将对象转换为string:

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

  • object?.ToString() – VS 2015 空条件运算符如果object为null,则返回null

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

  • object + "" – 当对象为空时,String.Concat返回""

  • $"{object}" – VS 2015 string插值 在编译时被转换为调用等效的String.Format("{0}", object)调用,并且当object为null时返回""

xlws.Cells [1,1] .Value有types对象 。 所以你应该指明types例如:

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

从excel docuemnt获取值有几种方法,但是我认为您需要的方法是:

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

一个很好的文章,解释其他方式也可在这里

希望有所帮助。

string val = sheet.Cells [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);