Перебирайте листы Excel и сохраняйте текст в файл TXT с помощью C#

У меня большая часть проблемы решена. Я могу перебирать листы, создавать текстовый файл и записывать в него. Единственная проблема, с которой я столкнулся, - это извлечение текста или значений из каждого листа. Ниже приведен код, который у меня есть, но он только выбрасывает объект на лист и записывает эти слова в мой текстовый файл вместо фактических значений.

System.Object[,]
System.Object[,]

Что еще мне не хватает? Я должен отметить, что я начинающий программист.

Вот код, который у меня есть:

using (StreamWriter sw = File.CreateText("ExtractedText.txt"))
{
    Excel.Application xlApp = new Excel.Application();
    Excel.Workbook thisWkBook = xlApp.Workbooks.Open(thisFile);

    foreach (Excel.Worksheet sheet in thisWkBook.Worksheets)
    {
        sw.WriteLine(sheet.UsedRange.Value);
    }
}

Есть идеи? Спасибо!

2 ответа

Решение

Как то так, не проверял. См. http://dontbreakthebuild.com/2011/01/30/excel-and-c-interop-with-net-4-how-to-read-data-from-excel/

using (StreamWriter sw = File.CreateText("ExtractedText.txt"))
{
    var excelApp = new Excel.Application();
    var workBook = excelApp.Workbooks.Open(thisFile);

    foreach (var sheet in workBook.Worksheets)
    {
      foreach (var row in sheet.UsedRange.Rows)
      {
        foreach (var cell in row.Columns)
        {
          sw.Write(cell.Value + " ");
        } 
        sw.WriteLine();
      }
    }
}

Вам нужно получить данные с листа, например:

sw.WriteLine(sheet.Range["C5"].Value.ToString());
Другие вопросы по тегам