C# 如何从excel单元格中提取字符串?
我知道如何写入单元格,但如何将excel文件中单元格内已存在的字符串写入字符串对象,以便使用它在其他单元格中生成数据 到目前为止,我的代码是:C# 如何从excel单元格中提取字符串?,c#,string,excel,cell,C#,String,Excel,Cell,我知道如何写入单元格,但如何将excel文件中单元格内已存在的字符串写入字符串对象,以便使用它在其他单元格中生成数据 到目前为止,我的代码是: Excel.ApplicationClass excelApp = new Excel.ApplicationClass(); excelApp.Visible = true; Excel.Workbook excelWorkbook = excelApp.Workbooks.Open("C:\\Use
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”代码>
但我在做相反的事情时遇到了困难,那就是在我的程序中将单元格内容读入字符串
任何帮助都将不胜感激。字符串myString=xlws.Cells[1,1]。值为字符串代码>
string myString=((Excel.Range)sheet.Cells[1,1]).Value2.ToString()代码>xlws.Cells[1,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];
一篇很好的文章也解释了其他方法
希望有帮助。为了避免空引用异常
,不要直接在可以为空的类型上使用.ToString()
(对象
,动态
,字符串
,等等)。以下是将对象转换为字符串的几种更安全的方法:
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);
Convert.ToString(对象)
-当对象为空时返回
object?.ToString()
-VS 2015如果对象为null,则返回null
object?.ToString()??“
-在对象为空时返回”
object+”
-String.Concat在对象为空时返回”
$“{object}”
-VS 2015是调用一个等价的String.Format(“{0}”,object)
调用,并在对象为null时返回”
字符串val=sheet.Cells[1,6]。文本
这是从单元格中获取文本的最佳方法。
我可以得到相同的文本而不做任何更改。我给了Slai一票,因为他在处理字符串时是正确的,你应该使用
Convert.ToString(object)
而不是ToString()
。在我的项目中切换这个选项修复了我的空引用。这样的帖子让我错过了SO文档。这将是一个完美的入口。谢谢