我怎样才能从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( object
, dynamic
, string
等)上使用.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);