写文本数据使用C#文件来优化

在C#中使用Visual Studio 2008新手,并试图加载一个文本文件的Excel表。 我当前的程序将完整的文件放在一个单元格中。 有没有办法把每个数据点放在自己的单元格中。 遇到问题与Excel的接口来完成这项任务。

谢谢

Microsoft Excel 11.0对象库可能会帮助你。 您必须在项目中添加引用,并包含名称空间:

  using Microsoft.Office.Interop.Excel; 

看看http://support.microsoft.com/?scid=kb%3Ben-us%3B302096&x=10&y=10 。 进一步的信息。

一个简单的方法是将您的文本文件输出为CSV文件(逗号分隔值) 。 每一行是一行,每一列之间都有逗号。 维基百科链接有很好的例子。 Excel文件很容易读取CSV文件。

如果您正在寻找的不仅仅是将数据导入到Excel中,而且还需要格式化单元格,那么使用C#的Excel互操作性就是phimuemue所build议的方法。

下面是一个很好的库,可以用它来编写如上所述的excel xml文档。 它实际上是一个很好的包装大部分你需要的function。 另外,如果你在一个没有在服务器上安装excel的web应用程序中执行此操作,则不需要interop库。

http://www.carlosag.net/Tools/ExcelXmlWriter/

Microsoft定义了与Excel 2002及更高版本兼容的XML电子表格格式。 我已经使用,并已经非常高兴。 在MSDN上有一个温和的介绍和一些基本的文档 。

下面是一段简短的代码,说明如何使用它:

 public void WriteExcelDocument(string filename, string[,] values) { using (var writer = XmlWriter.Create(filename)) { const string ss = "urn:schemas-microsoft-com:office:spreadsheet"; writer.WriteProcessingInstruction("mso-application", "progid=\"Excel.Sheet\""); writer.WriteStartElement("ss", "Workbook", ss); writer.WriteStartElement("Worksheet", ss); writer.WriteAttributeString("Name", ss, "Sheet1"); writer.WriteStartElement("Table", ss); for (var i = 0; i < values.GetLength(0); i++) { writer.WriteStartElement("Row", ss); for (var j = 0; j < values.GetLength(1); j++) { writer.WriteStartElement("Cell", ss); writer.WriteStartElement("Data", ss); // Valid types are: Number, DateTime, Boolean, String, Error. // To keep the example simple, I'm just doing strings. writer.WriteAttributeString("Type", ss, "String"); // If the cell contains a boolean, be sure to write "0" or "1" here, not // "false" or "true". Again, I'm just doing strings, so it doesn't matter. writer.WriteString(values[i, j]); writer.WriteEndElement(); writer.WriteEndElement(); } writer.WriteEndElement(); } writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteEndElement(); } } 

随意采取这个代码,并使用它或修改它,因为你认为合适。 我正在根据MIT的许可证发布它。 这只是一个起点, 你可以修改它来处理不同的数据types,列宽,样式,多个工作表等。