2011-04-13 75 views
4

我知道如何寫入單元格,但是如何將已存在的字符串寫入excel文件中的單元格中並將其寫入字符串對象,以便我可以使用它在其他單元格中生成數據?如何從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";

但是我無法做的正好相反,就是讀單元格內容爲我的程序中有一個字符串。

任何幫助,將不勝感激。

回答

6

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

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

+0

我給了Slai一個upvote,因爲他在處理字符串時是對的,你應該使用'Convert.ToString(object)'而不是'ToString()'。在我的項目中切換這個剛剛修復了我的空引用。 – BrewMate 2017-02-02 16:59:29

2

xlws.Cells [1,1]。價值具有類型對象。所以,你應該註明型號 有關示例:

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

有一對夫婦的方式從Excel docuemnt但我認爲你正在尋找的方式得到的值是:

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

一個很好的文章,解釋其他方式也可用here

希望有所幫助。

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); 
5

爲了避免NullReferenceException,請勿直接的類型,可以爲空(objectdynamicstring等)使用.ToString()。這裏有一些更安全的方式對象轉換爲字符串:

+0

這樣的帖子讓我想念SO文檔。這將是一個完美的入門。謝謝! – webworm 2018-01-08 14:11:58

1

串VAL =片.Cells [1,6]。文本;

這是從單元格獲取文本的最佳方法。 我可以在沒有任何改變的情況下得到相同的文本。

相關問題