Как извлечь строку из ячейки Excel? - PullRequest
4 голосов
/ 13 апреля 2011

Я знаю, как записать в ячейку, но как мне получить уже существующую строку, записанную внутри ячейки в файле 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 ]

7 голосов
/ 13 апреля 2011

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

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

6 голосов
/ 13 декабря 2016

Чтобы избежать NullReferenceException, не используйте .ToString() непосредственно для типов, которые могут быть нулевыми (object, dynamic, string и т. Д.).Вот несколько безопасных способов преобразования объекта в строку:

2 голосов
/ 13 апреля 2011

Есть несколько способов получить значения из документа Excel, но я думаю, что вы ищете:

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

Доступна хорошая статья, которая объясняет и другие способы здесь

Надеюсь, это поможет.

2 голосов
/ 13 апреля 2011

xlws.Cells [1, 1]. Значение имеет тип объект . Таким образом, вы должны указать тип Например:

xlws.Cells[1,1].Value.ToString();
1 голос
/ 11 марта 2017

string val = sheet.Cells [1, 6] .Text;

Это был лучший способ получить текст из ячейки.Я мог бы получить тот же текст без каких-либо изменений.

0 голосов
/ 28 февраля 2014
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);
...