使用C#将Excel工作表中的数据写入文本文件

时间:2009-06-24 11:59:54

标签: c# excel text-files

我需要使用C#将Excel工作表/工作簿中的数据写入文本文件。

另外,我希望所有Excel工作表数据都在单个文本文件中。

除了逐个从Excel工作表中读取数据然后将其附加到现有文本文件外,还有其他简单的方法吗?

4 个答案:

答案 0 :(得分:3)

我建议使用OleDbDataReaderwww.connectionstrings.com中的连接字符串来读取Excel文件。您可以使用自己喜欢的方法(例如StreamWriter)将数据吐出到文本文件中。

答案 1 :(得分:1)

SpreadsheetGear for .NET可以使用几行代码完成:

using System;
using SpreadsheetGear;

namespace WorkbookToCSV
{
    class Program
    {
        static void Main(string[] args)
        {
            string inputFilename = @"c:\CSVIn.xlsx";
            string outputFilename = @"c:\CSVOut.csv";
            // Create the output stream.
            using (System.IO.FileStream outputStream = new System.IO.FileStream(outputFilename, System.IO.FileMode.Create, System.IO.FileAccess.Write))
            {
                // Load the source workbook.
                IWorkbook workbook = Factory.GetWorkbook(inputFilename);
                foreach (IWorksheet worksheet in workbook.Worksheets)
                {
                    // Save to CSV in a memory buffer and then write it to
                    // the output FileStream.
                    byte[] csvBuffer = worksheet.SaveToMemory(FileFormat.CSV);
                    outputStream.Write(csvBuffer, 0, csvBuffer.Length);
                }
                outputStream.Close();
            }
        }
    }
}

您可以下载免费试用版here并亲自试用。

免责声明:我拥有SpreadsheetGear LLC

答案 2 :(得分:1)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Text.RegularExpressions;
using System.Globalization;

namespace Module2
{
    public class Archives
    {
        public void readArchive()
        {
            //this will read from the archive
            StreamReader SR;
            string S;
            int i = 0;
            SR = File.OpenText(@"the path here for the excel archive");

            S = SR.ReadToEnd();
            SR.Close();
            Console.WriteLine(S);
            string[] words = S.Split(';');
            Array.Sort(words);
            for (i = 0; i < words.Length; i++)
                Console.WriteLine(words[i]);

            //this will create the archive
            StreamWriter SW;
            SW = File.CreateText(@"the path here for the .txt");
            for (i = 0; i < words.Length; i++)
                SW.WriteLine(words[i]);
            SW.Close();
        }
    }
}

将读取,拆分文本,将它们放在一个数组上并写入.txt文件中的每个单词。 我想那就是它..

答案 3 :(得分:0)

有很多方法可以做到这一点。尝试在搜索框中搜索Excel。

在您的情况下,我认为最简单的选择是自动化Excel以打开Excel工作簿,然后使用SaveAs功能将其另存为CSV。