【问题标题】:Loop through Excel worksheets and save text into a TXT file with C#循环遍历 Excel 工作表并使用 C# 将文本保存到 TXT 文件中
【发布时间】:2013-01-24 16:51:51
【问题描述】:

我已经解决了大部分问题。我可以循环浏览工作表,我可以创建文本文件并写入它。我遇到的唯一问题实际上是从每张纸中提取文本或值。下面是我的代码,但它只为每个工作表抛出一个对象,并将这些词写入我的文本文件而不是实际值。

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

有什么想法吗?谢谢!

【问题讨论】:

    标签: c# worksheet excel export-to-text


    【解决方案1】:

    类似的东西,未经测试。见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();
          }
        }
    }
    

    【讨论】:

    • 啊!所以我还需要遍历行和列!明白了。我正在测试这个,谢谢!
    • .Value2 部分不起作用。但是从您的建议开始,我发现您可以使用“foreach”语句循环遍历单元格,如下所示:foreach (Excel.Worksheet sheet in thisWkBook.Worksheets) { foreach (Excel.Range thisRow in sheet.UsedRange.Rows) { foreach (Excel.Range thisCell in thisRow.Columns) { sw.Write(thisCell.Value + " "); } sw.WriteLine(); } 您想更新您的答案,以便我可以选择它作为最终答案吗?
    【解决方案2】:

    您需要从工作表中获取数据,例如:

    sw.WriteLine(sheet.Range["C5"].Value.ToString());
    

    【讨论】:

    • 这为我指明了正确的方向(实际上是Range["C5"],带括号)。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-05
    • 1970-01-01
    • 2019-04-06
    • 2021-12-09
    • 2020-05-08
    • 1970-01-01
    相关资源
    最近更新 更多