[英]How can I extract a string from an excel cell?
我知道如何寫入單元格,但是如何將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";
但是我正在做相反的事情,那就是在我的程序中將單元格內容讀入一個字符串。
任何幫助,將不勝感激。
string myString = xlws.Cells[1, 1].Value as string;
string myString = ((Excel.Range)workSheet.Cells[1, 1]).Value2.ToString();
要避免NullReferenceException
,請不要直接對可以為null的類型( object
, dynamic
, string
等)使用.ToString()
)。 以下是將對象轉換為字符串的幾種更安全的方法:
Convert.ToString(object)
- 當object為null時返回String.Empty
object?.ToString()
- VS 2015 Null-conditional運算符如果object為null則返回null
object?.ToString() ?? ""
object?.ToString() ?? ""
- C#null-coalescing operator ??
當object為null時返回""
object + ""
- String.Concat在object為null時返回""
$"{object}"
- 在編譯時轉換 VS 2015 字符串插值以調用等效的String.Format("{0}", object)
調用,並在object為null時返回""
xlws.Cells [1,1] .Value有類型對象 。 所以你應該指明類型為例子:
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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.