c# - 将文本文件转换为 Excel

标签 c# excel

我有文本文件,我通过将它们复制/粘贴到 Excel 中将它们转换为 Excel,然后转到 DATA -> Text to Columns。

  • 然后我选择分隔。
  • 然后选择分隔符选项卡和分号。
  • 在最后一步中,我为所有字段选择文本。

  • 现在我想通过在 C# 中制作一个程序来自动化它。

    我将对 Excel 文件中的数据进行一些编辑。如果特定列具有特定名称等,则可以创建一个新的 Excel 文件。因此,我可以从一个文本文件中得到三四个 Excel 文件。

    什么是相对优点:

    将文本文件读入字符串/列表然后检查数据然后将数据写入不同的 Excel 文件?

    或者

    在 C# 中使用 TextToColumn() 方法然后开始编辑然后将其写入新的 Excel 文件?

    如果还有其他更好的方法来完成这样的事情,请提出建议。

    编辑:我看到很多第 3 方的建议,但我想自己做,这样我就可以学习了。

    最佳答案

    您可以通过以下两种方法之一执行此操作。
    第一种方法:
    使用此代码将文本文件转换为 csv 文件

    using System.IO;
    void ConvertToCsv(string sourcefile, string destfile)
    {
        int i, j;
        StreamWriter csvfile;
        string[] lines, cells;
        lines = File.ReadAllLines(sourcefile);
        csvfile = new StreamWriter(destfile);
        for (i = 0; i < lines.Length; i++)
        {
            cells = lines[i].Split(new Char[] { '\t', ';' });
            for (j = 0; j < cells.Length; j++)
                csvfile.Write(cells[j] + ",");
            csvfile.WriteLine();
        }
        csvfile.Close();
    }
    
    然后打开这个文件保存为 xlsx 文件。
    第二种方法:
    使用此代码将文本文件直接转换为 xlsx 文件。
    using System.IO;
    using Excel = Microsoft.Office.Interop.Excel;
    
    void ConvertToXlsx(string sourcefile, string destfile)
    {
        int i, j;
        Excel.Application xlApp;
        Excel.Workbook xlWorkBook;
        Excel._Worksheet xlWorkSheet;
        object misValue = System.Reflection.Missing.Value;
        string[] lines, cells;
        lines = File.ReadAllLines(sourcefile);
        xlApp = new Excel.Application();
        xlApp.DisplayAlerts = false;
        xlWorkBook = xlApp.Workbooks.Add();
        xlWorkSheet = (Excel._Worksheet)xlWorkBook.ActiveSheet;
        for (i = 0; i < lines.Length; i++)
        {
            cells = lines[i].Split(new Char[] { '\t', ';' });
            for (j = 0; j < cells.Length; j++)
                xlWorkSheet.Cells[i + 1, j + 1] = cells[j];
        }
        xlWorkBook.SaveAs(destfile, Excel.XlFileFormat.xlWorkbookDefault, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
        xlWorkBook.Close(true, misValue, misValue);
        xlApp.Quit();
    }
    
    不要忘记添加此引用。
    项目 > 添加引用 > 程序集 > 扩展
    选择“Microsoft.Office.Interop.Excel”
    您还可以对值进行所需的检查并将它们写入单独的文件。

    关于c# - 将文本文件转换为 Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29086612/

    相关文章:

    java - 如何使用 iText 获取获取单元格值

    c# - 与多个客户端的C#TCP/IP简单聊天

    c# - FormsAuthentication.SignOut() 不起作用

    c# - Unity - 不同的手机尺寸

    c# - Linq to SQL DataContext 的多个/单个实例

    r - readxl(将excel文件导入R)错误

    java - 将行导出到 Excel 时如何替换默认的 jtable 列值 - Java

    c# - 在 RTF 字符串中设置格式?

    excel - 我可以通过 Excel VBA 访问和查询基于 Web 的 Crystal Report Viewer 吗?

    excel - 从excel VBA代码中的电子邮件正文中提取表格