Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2012, 22:31   #1
Fedosss
Пользователь
 
Регистрация: 14.02.2012
Сообщений: 41
По умолчанию Проблемы при конвертации Excel в pdf

На компе установлен 2007 офис SP2(это значит что можно сохранять файлы WORD и EXCEL в формате PDF).
При работе с вордом все нормально:
Код HTML:
    class WordToPDF
    {
        private Word.Application word;
        object oMissing;
        public WordToPDF()
        {
           word = new Microsoft.Office.Interop.Word.Application();
           word.Visible = false;
           word.ScreenUpdating = false;
           oMissing = System.Reflection.Missing.Value;
        }
        public void Convert(FileInfo FI, DirectoryInfo DI)
        {
            object FileName = (object)FI.FullName;
            Word.Document doc = word.Documents.Open(ref FileName, ref oMissing, ref oMissing, ref oMissing,
                                                        ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                                                        ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                                                        ref oMissing, ref oMissing, ref oMissing, ref oMissing);
            doc.Activate();
            object outputFullName = CreateOutPutFullName(FI, DI);
            object FileFormst = Word.WdSaveFormat.wdFormatPDF;
            doc.SaveAs(ref outputFullName, ref FileFormst, ref oMissing, ref oMissing,
                                                        ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                                                        ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                                                        ref oMissing, ref oMissing, ref oMissing, ref oMissing);
            object SaveChanges = Word.WdSaveOptions.wdDoNotSaveChanges;
            ((Word._Document)doc).Close(ref SaveChanges, ref oMissing, ref oMissing);
            doc = null;

        }
        private static object CreateOutPutFullName(FileInfo FI, DirectoryInfo DI)
        {
            string OutPutFullName=String.Format("{0}\\{1}.pdf", DI.FullName, Path.GetFileNameWithoutExtension(FI.FullName));
            return (object)OutPutFullName;
        }
    }
Благодоря SP2 я могу быбрать вариант перечесления
object FileFormst = Word.WdSaveFormat.wdFormatPDF;
и тем самым сохранить файл в формате pdf/
Но вот в Excel проблема:
Код HTML:
    class ExcelToPDF
    {
        private Excel.Application excel;
        object oMissing;
        public ExcelToPDF()
        {
            excel = new Microsoft.Office.Interop.Excel.Application();
            excel.Visible = false;
            excel.ScreenUpdating = false;
            oMissing = System.Reflection.Missing.Value;
        }
        public void Convert(FileInfo FI, DirectoryInfo DI)
        {
            
            string FileName =FI.FullName;
            Excel.Workbook  work =excel.Workbooks.Open(FileName,oMissing,oMissing,oMissing,
                                                        oMissing,oMissing,oMissing,oMissing,
                                                        oMissing,oMissing,oMissing,oMissing,
                                                        oMissing,oMissing,oMissing);
            work.Activate();
            
            object outputFullName = CreateOutPutFullName(FI, DI);
            object FileFormat = Excel.XlFileFormat.????????;
            //object FileFormat = Excel.XlFixedFormatType.xlTypePDF;
            
            
            work.SaveAs(outputFullName,FileFormat, oMissing,oMissing,
                                                        oMissing,oMissing,Excel.XlSaveAsAccessMode.xlNoChange,oMissing,
                                                        oMissing,oMissing,oMissing,oMissing);
            
            
            ((Excel._Workbook)work).Close(false, oMissing, oMissing);
            work = null;

        }
        private static object CreateOutPutFullName(FileInfo FI, DirectoryInfo DI)
        {
            string OutPutFullName = String.Format("{0}\\{1}.pdf", DI.FullName, Path.GetFileNameWithoutExtension(FI.FullName));
            return (object)OutPutFullName;
        }
    }
Я не могу найти в перечеслении формата файла похожее что-то на pdf(хотя если работать просто в офисе то из WORDa и EXCElя файлы сохраняются в формате pdf!!!!
Нашел какое-то перечесление
object FileFormat = Excel.XlFixedFormatType.xlTypePDF;
но оно не подходит как аргумент метода SaveAs!!!
Fedosss вне форума Ответить с цитированием
Старый 29.05.2012, 12:50   #2
Reskov
Форумчанин
 
Аватар для Reskov
 
Регистрация: 17.12.2008
Сообщений: 250
По умолчанию

http://msdn.microsoft.com/en-us/library/bb238907.aspx
Reskov вне форума Ответить с цитированием
Старый 29.05.2012, 13:15   #3
Fedosss
Пользователь
 
Регистрация: 14.02.2012
Сообщений: 41
По умолчанию

Спасибо очень помогло!
похожий метод можно использовать и в ворде!
странно что в excel нельзя проделать эту фишку с методом SaveAs!
Fedosss вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
После конвертации из pdf не форматируется текст Drt Microsoft Office Word 1 05.05.2011 21:52
Ошибка конвертации при передачи фото по сети Lokos Работа с сетью в Delphi 2 07.10.2010 02:08
Проблема при конвертации LPWSTR To int Alexcomeback Общие вопросы C/C++ 9 03.10.2010 23:27
Макрос для конвертации таблицы Excel Yarr Microsoft Office Excel 1 13.08.2010 10:47
Ошибка при конвертации tools Общие вопросы .NET 1 25.09.2009 21:56