Click here to Skip to main content
15,880,405 members
Articles / Programming Languages / C#

How to programmatically open a text file in Excel using VSTO

Rate me:
Please Sign up or sign in to vote.
1.67/5 (3 votes)
22 Sep 2006CPOL 36.4K   16  
We can easily start Excel and open a given workbook - however, it takes some trickery to open a text file without using the commandline.

How to open a txt/prn file programmatically in Excel

Given that Excel takes no arguments on the command-line, how do we programmatically open a file with other types than workbook? This took me some hours to figure out. Hope this solution helps someone else to avoid going down a long track of making macros and whatnot.

  1. Ensure the Office Interop DLLs are installed (PIAs).
  2. Code away.

Here is the complete code:

C#
using System.Globalization;
using Excel = Microsoft.Office.Interop.Excel;

//wrap in some class ..

//ms-help://MS.VSCC.v80/MS.MSDN.vAug06.en/offioxl11ref/html/
//           M_Microsoft_Office_Interop_Excel_Workbooks_OpenText_3_1a91c0ff.htm
public static void OpenTxtInExcel(string name, string filename)
{
    Excel.Application application = new Excel.Application();
    object missing = System.Reflection.Missing.Value;
    System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
    System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
    application.Caption = name;
    application.Visible = true;
    application.Workbooks.OpenText
    (
        filename,
        missing,
        1,
        missing,
        Excel.XlTextQualifier.xlTextQualifierNone,
        missing,
        missing,
        missing,
        true, //COMMA
        missing,
        missing,
        missing,
        missing,
        missing,
        missing,
        missing,
        missing,
        missing
    );
}

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Architect HelloGroup
Denmark Denmark
Casper Leon Nielsen is a MCP/MCAD and is currently employed by HelloGroup a/s - a technical savy (yes that whats they are calling it these days) company.

Comments and Discussions

 
-- There are no messages in this forum --