C#将文本文件保存到Excel

我有一个逗号分隔的文本文件。 一些数字代表代码或信用卡号码,他们应该在Excel中显示为TEXT,不应该被视为数字(左边是重要的)

这里是我的代码:

m_objBooks.OpenText( Filename: _fileInfo.FullName, Origin: Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, StartRow: 1, DataType: Microsoft.Office.Interop.Excel.XlTextParsingType.xlDelimited, TextQualifier: Microsoft.Office.Interop.Excel.XlTextQualifier.xlTextQualifierDoubleQuote, ConsecutiveDelimiter: false, Tab: false, Semicolon: false, Comma: true, Space: false, Other: false, OtherChar: m_objOpt, FieldInfo: m_objOpt, TextVisualLayout: m_objOpt, DecimalSeparator: m_objOpt, ThousandsSeparator: m_objOpt, TrailingMinusNumbers: m_objOpt, Local: m_objOpt ); m_objBook = m_objExcel.ActiveWorkbook; // Save the text file in the typical workbook format and quit Excel. m_objBook.SaveAs(excelFile, Microsoft.Office.Interop.Excel.XlFileFormat.xlOpenXMLWorkbook, m_objOpt, m_objOpt, m_objOpt, m_objOpt, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, m_objOpt, m_objOpt, m_objOpt, m_objOpt); m_objBook.Close(false, m_objOpt, m_objOpt); m_objExcel.Quit(); 

虽然代码和信用卡字段有双引号,生成的Excel文件仍然把它们作为数字通过删除左零和类似的东西。 为什么?

我已经在一个月内与这个问题斗争了。 我发现使用这种方法有很多问题。

最后,我在CodeProject网站上获得了一个很好的例子。

请看下面的例子。

一个非常易于使用的Excel XML导入导出库

我希望它有帮助。

我设法通过传递正确的FieldInfo对象来解决这个问题。

在我的例子中,我将一个Missing对象传递给FieldInfo参数。

而不是那个,我创build了一个数组对象,并将其传递给FieldInfo参数。

以下是如何创buildFieldInfo对象的示例:

 int[,] _fieldInfo = new int[8,2] // 8 = number of columns , 2 = number of properties (column number and column type (General = 1 , Text = 2 .. check: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.workbooks.opentext.aspx ) //fill the array: _fieldInfo[0,0] = 1; //column number _fieldInfo[0,1] = 2; //column type (2 = text) _fieldInfo[1,0] = 2; _fieldInfo[1,1] = 2; _fieldInfo[2,0] = 3; _fieldInfo[2,1] = 2; 

之后,我只是通过_fieldInfo的方法,一切都完成了。 当然,您可以使用这种技术来使用循环dynamic地创build_fieldInfo。