一千萬個為什麽

搜索

在C#中使用excel interop導入txt文件(QueryTables.Add)


我試圖使用Querytables.Add將文本文件插入excel單元格;沒有錯誤,但工作表是空的。除了使用Value2屬性的單個單元格操作。

我已經使用宏來記錄使用的對象。

你能幫我解決這個問題嗎(我使用的是vs2008,C#,excel 2003和2007;兩者都顯示空單元格)。

以下是我的代碼;謝謝你的幫助

        Application application = new ApplicationClass();
        try
        {
            object misValue = Missing.Value;

            wbDoc = application.Workbooks.Open(flnmDoc, misValue, misValue, misValue, misValue, misValue, misValue,
                                               misValue, misValue, misValue, misValue, misValue, misValue, misValue,
                                               misValue);

            wsRefDocBudgetOwner = (Worksheet)wbDoc.Worksheets[2];


            Range lRange = wsRefDocBudgetOwner.get_Range("B2", "B25");
            var temp2 = wsRefDocBudgetOwner.QueryTables;
            var temp = temp2.Add(@"TEXT;d:\temp\config ssas.txt", lRange, Type.Missing);
            //temp.RefreshStyle = XlCellInsertionMode.xlInsertDeleteCells;
            //temp.RefreshOnFileOpen = true;

            wsRefDocBudgetOwner.get_Range("B1", "B1").Value2 = "Lgfdgast adsffdafadfads";

            wbDoc.Save();
            //wbDoc.SaveAs(flnmDoc2, misValue, misValue, misValue, misValue, misValue, XlSaveAsAccessMode.xlExclusive,
             //          misValue, misValue, misValue, misValue, misValue);
            wbDoc.Close(Missing.Value, Missing.Value, Missing.Value);
        }
        finally
        {

            application.Quit();
        }

最佳答案

我找到了;

它是RefreshStyle屬性。它應該設置為xlInsertEntierRows。

temp.RefreshStyle = XlCellInsertionMode.xlInsertEntireRows;

as shown in http://support.microsoft.com/kb/306023

轉載註明原文: 在C#中使用excel interop導入txt文件(QueryTables.Add)

猜你喜歡