我知道如何写入单元格,但是如何将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";
但我遇到了相反的问题,那就是在我的程序中将单元格内容读入一个字符串。
任何帮助都将不胜感激。
答案 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()
直接用于可以为空的类型object
,dynamic
,string
等。 )。以下是将对象转换为字符串的几种更安全的方法:
Convert.ToString(object)
- 当对象为空时返回String.Empty
object?.ToString()
- 如果object为null,VS 2015 Null-conditional Operator将返回null
object?.ToString() ?? ""
- C# null-coalescing operator ??
在对象为空时返回""
object + ""
- String.Concat在对象为空时返回""
$"{object}"
- VS 2015 string interpolation transformed at compile time调用等效的String.Format("{0}", object)
调用,当object为null时返回""
答案 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);