我有文本文件,我通过将它们复制/粘贴到 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/