Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> работа с файлами Excel 2007, работа с файлами Excel 2007 
:(
    Опции темы
lildare
  Дата 1.8.2011, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 11.2.2011

Репутация: нет
Всего: нет



Здравствуйте. вопрос такой: на компе не установлен Excel 2007, прога работает с Interop ver.12

работа с файлами 2003 проходит на ура, но с 2007-го формата происходит лажа, которая заключается в следующем:
1.при открытии файла вылезает предупреждение "Неизвестный формат файла", которое я игнорирую
2. когда я вношу изменения в ячейку и сохраняю workbook(кстати эти процессы происходят без ошибок), а потом пытаюсь вручную открыть файл, то вылезает ошибка "Excel cannot open the file because the file format or file extension is not valid"

Сейчас многие скажут: "Это ведь лгично, у тебя не установлен 2007 офис", но:

3. когда я не вношу изменения в ячейку и сохраняю workbook, то вручную файл открывается без всяких ошибок с помощью конвертера (откуда он у меня взялся на компе, не знаюsmile)

код:
Код

private bool FormatDocument(string fileName,int[] columnNumbers,ref string SheetName)
    {
        string extension = System.IO.Path.GetExtension(fileName);
        if (!System.IO.File.Exists(fileName) || (extension!=".xls" && extension!=".xlsx"))
            return false;
      
        xl.Application xlApp = null;
        xl.Workbooks xlWBs = null;
        xl._Workbook EWb = null;
        xl.Sheets xlSheets = null;
        xl._Worksheet ESh = null;
        xl.Range ERg = null;
        object optdef = System.Reflection.Missing.Value;
        try
        {
            xlApp = new xl.Application();
        }
        catch (Exception ex)
        {
            Response.Write("<script>alert('"+ex.Message+"')</script>");
            return false;
        }
       // xlApp.IgnoreRemoteRequests = true;
        xlApp.DisplayAlerts = false;
        xlWBs = (xl.Workbooks)xlApp.Workbooks;
        EWb = xlWBs.Open(fileName,Type.Missing, Type.Missing, Type.Missing, Type.Missing,
        Type.Missing, Type.Missing, Type.Missing, Type.Missing,
        Type.Missing, Type.Missing,  true, Type.Missing,
        Type.Missing, Type.Missing); ;
        xlSheets = (xl.Sheets)EWb.Worksheets;
        ESh = (xl._Worksheet) (xlSheets.get_Item(1));
        SheetName = ESh.Name;
//вот здесь происходят изменения
       // for (int i = 0; i < columnNumbers.Length; i++)
       //       ESh.Cells[2, columnNumbers[i]] = string.Format("'{0}", (ESh.get_Range(ESh.Cells[2, columnNumbers[i]], ESh.Cells[2, columnNumbers[i]])).get_Value(Type.Missing));
 
 
       EWb.Close(true, System.Reflection.Missing.Value, System.Reflection.Missing.Value);
      //  xlApp.IgnoreRemoteRequests = false;
        xlApp.Quit();
        releaseObject(ERg);
        releaseObject(ESh);
        releaseObject(xlSheets);
        releaseObject(EWb);
        releaseObject(xlWBs);
        releaseObject(xlApp);
        // xlApp.UserControl = true;
        //Response.Write("<script>alert('OK!')</script>");
        GC.GetTotalMemory(true);
        return true;
    }
 

  

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0889 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.