循环遍历 Excel 工作表并使用 C# 将文本保存到 TXT 文件中
Posted
技术标签:
【中文标题】循环遍历 Excel 工作表并使用 C# 将文本保存到 TXT 文件中【英文标题】:Loop through Excel worksheets and save text into a TXT file with C# 【发布时间】: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);
有什么想法吗?谢谢!
【问题讨论】:
【参考方案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"]
,带括号)。谢谢!以上是关于循环遍历 Excel 工作表并使用 C# 将文本保存到 TXT 文件中的主要内容,如果未能解决你的问题,请参考以下文章
Python:循环遍历 Excel 工作表,将标题信息分配给每个工作表上的列,然后合并到一个文件
如何将行从一个 Excel 工作表复制到另一个工作表并使用 VBA 创建重复项?