0

我正在使用 Excel 查询表将数据导出到 excel 文件。将有一个包含多行数据的文本文件,每个单元格由 | 分隔 特点。我正在使用以下代码将数据转储到 excel 文件

         try
        {
            //Start Excel and get Application object.
            oXL = new Excel.Application();
            oXL.Visible = false;
            oXL.UserControl = false;
            //Get a new workbook.
            oWBook = (Excel._Workbook)(oXL.Workbooks.Open(strFilename, 0, false, 5, "", "", true, Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false));
            oSheet = (Excel._Worksheet)oWBook.ActiveSheet;
            oSheet.Activate();

            //Create header row 2
            oXL.ReferenceStyle = Microsoft.Office.Interop.Excel.XlReferenceStyle.xlR1C1;
            Excel.Range oRange2 = oSheet.get_Range("A2", "A2");
            oRange2.FormulaR1C1 = HeaderLine1;

            //Create header row 2
            oRange2 = oSheet.get_Range("A3", "A3");
            oRange2.FormulaR1C1 = HeaderLine2;

            oRange2 = oSheet.get_Range("A" + StartRowNumber.ToString().Trim(), Missing.Value);
            var temp = oSheet.QueryTables.Add("TEXT;" + TextFileName, oRange2, Missing.Value);

            temp.Name = TextFileName.ToUpper().Replace(".TXT", "");
            temp.PreserveFormatting = true;
            temp.AdjustColumnWidth = false;
            temp.TextFileStartRow = 1;
            temp.TextFileParseType = Microsoft.Office.Interop.Excel.XlTextParsingType.xlDelimited;
            temp.TextFileTextQualifier = Microsoft.Office.Interop.Excel.XlTextQualifier.xlTextQualifierDoubleQuote;
            temp.TextFileConsecutiveDelimiter = false;
            temp.TextFileTabDelimiter = true;
            temp.TextFileSemicolonDelimiter = false;
            temp.TextFileCommaDelimiter = false;
            temp.TextFileSpaceDelimiter = false;
            temp.TextFileOtherDelimiter = "|";
            temp.TextFilePlatform = 1252;//65001;//1252;//65001;//1200;
            //http://en.wikipedia.org/wiki/Code_page
            temp.TextFileColumnDataTypes = GetDataType(ColumnDataType);
            temp.TextFileTrailingMinusNumbers = true;
            temp.Refresh(false);

            //temp.Connection.ToString();
            temp.Delete();



            oXL.ReferenceStyle = Microsoft.Office.Interop.Excel.XlReferenceStyle.xlA1;
            oWBook.Save();
            oWBook.Close(false, Missing.Value, Missing.Value);

        }
        catch (Exception ex)
        {
            oWBook.Close(false, Missing.Value, Missing.Value);
        }
        finally
        {
            oXL.Quit();
            System.Runtime.InteropServices.Marshal.ReleaseComObject(oSheet);
            oSheet = null;
            System.Runtime.InteropServices.Marshal.ReleaseComObject(oWBook);
            oWBook = null;
            System.Runtime.InteropServices.Marshal.ReleaseComObject(oXL);
            oXL = null;
            GC.Collect();
            GC.WaitForPendingFinalizers();
            GC.Collect();
            GC.WaitForPendingFinalizers();
        }

当文本文件包含一些特殊字符(前法语单词)时,它不会在生成后打开 excel 文件时显示。...

任何人都可以帮助解决这个问题吗?

谢谢苏雷什

4

0 回答 0