C # После того, как я сохраняю .csv в Excel, как мне открыть его? - PullRequest
0 голосов
/ 19 августа 2011

Я провел небольшое исследование и не был уверен, стоит ли мне использовать

Microsoft.Office.Interop.Excel

.Я беру .txt и делаю вещи, а затем сохраняю их как .CSV (значения, разделенные запятыми).Я хочу затем открыть его (по нажатию кнопки или что-то ...)

Как это можно сделать?

Ответы [ 5 ]

3 голосов
/ 19 августа 2011

Сопряжение с вашим комментарием:

Я хочу открыть его в Excel.exe.Это должно быть отдельное окно, которое открывается после того, как моя программа завершит конвертацию

Просто запустите ее, используя System.Diagnostics.Process класс:

using System.Diagnostics.Process;//at top of your application

//
//At button click or after you finish editing
//
Process excel = new Process();

//if the excel was installed in the target machine and the default program to open csvs
//then you can simply just call process start and put the file path, like:
excel.Start(@"Your edited csv file path");

//otherwise:
excel.StartInfo.FileName = @"The excel application file path";
excel.StartInfo.Arguments = @"Your edited csv file path";
excel.Start();
2 голосов
/ 19 августа 2011

Вы можете запустить процесс excel с путем к файлу в качестве параметра командной строки (excel.exe C: \ myFile.csv).Это откроет его в Excel.

1 голос
/ 19 августа 2011

Зависит от того, какую платформу вы используете (то есть Silverlight или Windows Forms). На вашем месте я бы использовал OpenFileDialog для чтения значений из списка через запятую в строку или класс. Образец ниже для Silverlight.

private void bOpenFileDialog_Click(object sender, RoutedEventArgs e)
    {
        // Create an instance of the open file dialog box.
        var openFileDialog1 = new OpenFileDialog();

        // Set filter options and filter index.
        openFileDialog1.Filter = "CSV File (.csv)|*.csv|All Files (*.*)|*.*";
        openFileDialog1.FilterIndex = 1;

        openFileDialog1.Multiselect = false;

        // Call the ShowDialog method to show the dialog box.
        bool? userClickedOK = openFileDialog1.ShowDialog();

        // Process input if the user clicked OK.
        if (userClickedOK == true)
        {
            // Open the selected file to read.
            System.IO.Stream fileStream = openFileDialog1.File.OpenRead();

            using (System.IO.StreamReader reader = new System.IO.StreamReader(fileStream))
            {
                // Read the first line from the file and write it the textbox.
                tbResults.Text = reader.ReadLine();
                //the results of your CSV are now stored in tbResults.Text
                //optionally you could parse the .CSV using string.Spit(',') into a string      array                    
            }
            fileStream.Close();
        }
    }
1 голос
/ 19 августа 2011

Да, Microsoft.Office.Interop.Excel - это то, что вам нужно, чтобы открыть файл CSV в Excel.

0 голосов
/ 19 августа 2011

Это приложение WinForms, WPF или ASP.NET? Если вы используете библиотеки Office Interop, вы зависите от того, какой Office установлен на этом компьютере. Если это веб-сервер, вы не хотите запускать Excel таким образом.

Проверьте www.SpreadSheetGear.com. Нет принадлежности, просто очень доволен.

...