Click here to Skip to main content
15,892,298 members
Articles / Desktop Programming / WPF

MPP Viewer

Rate me:
Please Sign up or sign in to vote.
4.75/5 (13 votes)
15 Jun 2011CPOL3 min read 103.8K   4.1K   41  
MPP Viewer is a simple viewer for Microsoft Project files. I works well with 2000/2003/2007 file formats.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using ProjectLibrary;
using System.IO;
using ProjectLibrary.Mpp;
using Microsoft.Win32;
using Ricciolo.Controls;
using System.Data;

namespace ProjectViewer
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        OpenFileDialog openFileDialog = new OpenFileDialog();
        MppProject project;

        public MainWindow()
        {
            InitializeComponent();
            openFileDialog.Filter = "Microsoft Project Files| *.mpp";
        }

        private void menuOpen_Click(object sender, RoutedEventArgs e)
        {
            if(openFileDialog.ShowDialog(this).GetValueOrDefault())
            {
                string fileName = openFileDialog.FileName;

                if (!String.IsNullOrEmpty(fileName))
                {
                    if (File.Exists(fileName))
                    {
                        try
                        {
                            MppHelper mppHelper = new MppHelper();
                            project = mppHelper.LoadProjectFile(fileName);

                            allTasksView.DataContext = project;
                            resourceSheetView.DataContext = project;

                            miExportToExcel.IsEnabled = true;
                        }
                        catch (Exception exception)
                        {
                            miExportToExcel.IsEnabled = false;

                            MessageBox.Show(exception.Message, "Load Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                    }
                    else
                    {
                        MessageBox.Show("File does not exist. Please enter a valid path.", "Input", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                    }
                }

            }

        }


        private void miExportToExcel_Click(object sender, RoutedEventArgs e)
        {
            SaveFileDialog saveFileDialog = new SaveFileDialog();
            if (saveFileDialog.ShowDialog().GetValueOrDefault())
            {
                DataSet dataSet = Utility.GetDataSet(project);

                ExcelDocumentHelper helper = new ExcelDocumentHelper();
                helper.ExportToExcel(saveFileDialog.FileName, dataSet);
            }
        }

    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

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


Written By
Architect
India India
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions