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

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

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2016, 18:28   #1
vik_S
Пользователь
 
Регистрация: 02.04.2016
Сообщений: 11
По умолчанию Сохранение картинок в Excel без сжатия на C#?

Здравствуйте, средствами С# создаю Excel файл, в ячейке есть картинка. При сохранении картинка сжимается. Вопрос вот в чем, в Excel есть возможность сохранять картинки в документе без сжатия, как на C# включить такую возможность? Спасибо.
vik_S вне форума Ответить с цитированием
Старый 02.04.2016, 19:39   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Сохраните открытый файл Excel с формате HTML - все картинки выгрузятся в отдельную папку
Правда, потом фиг разберешь, где какая картинка, если их несколько в файле было
EducatedFool вне форума Ответить с цитированием
Старый 02.04.2016, 19:45   #3
vik_S
Пользователь
 
Регистрация: 02.04.2016
Сообщений: 11
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Сохраните открытый файл Excel с формате HTML - все картинки выгрузятся в отдельную папку
Правда, потом фиг разберешь, где какая картинка, если их несколько в файле было
Не, Вы видимо не так поняли вопрос. Я создаю файл Excel с картинкой внутри, программно на С#. Картинка сжимается, но в самом Excel есть опция "Не сжимать картинки". Как программно на С# эту опцию активировать?
vik_S вне форума Ответить с цитированием
Старый 02.04.2016, 19:48   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Зависит от того как создаете: COM Interop, библиотеки основанные на OpenXML API, ...
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 02.04.2016, 20:31   #5
vik_S
Пользователь
 
Регистрация: 02.04.2016
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Зависит от того как создаете: COM Interop, библиотеки основанные на OpenXML API, ...
Создаю через COM Interop
vik_S вне форума Ответить с цитированием
Старый 02.04.2016, 20:37   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Может быть никак.
Тут так считают https://social.msdn.microsoft.com/Fo...?forum=worddev
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 02.04.2016, 21:19   #7
vik_S
Пользователь
 
Регистрация: 02.04.2016
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Может быть никак.
Тут так считают https://social.msdn.microsoft.com/Fo...?forum=worddev
Видимо что так... спасибо.
vik_S вне форума Ответить с цитированием
Старый 03.04.2016, 00:25   #8
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Я так вставляю без проблем.
Код:
  Imports Excel = Microsoft.Office.Interop.Excel
    '----------------------------------------
    Sub InsertPhoto(ByRef cell As Excel.Range, ByVal PicturePath As String, img As System.Drawing.Image)
        Dim dh = 1, w = 0, h = 0, WW = 0, HH = 0
        Try
            img.Save(PicturePath)
            Dim sha As Excel.Shape
            sha = cell.Worksheet.Shapes.AddPicture(PicturePath, True, True, _
            cell.Left - 1, cell.Top - 1, img.Width - 2, img.Height - 2)
            sha.ScaleWidth(1, -1)
            sha.ScaleHeight(1, -1)
            With sha
                .LockAspectRatio = -1
                .Top = cell.Top + dh
                w = .Width
                h = .Height
                WW = cell.Width - 2 * dh
                HH = cell.Height - 2 * dh

                .Height = h * cell.Width / w
                .Width = WW        '
                .Left = cell.Left        '
                If .Height > cell.Height Then
                    .Height = cell.Height
                End If

            End With
            IO.File.Delete(PicturePath)
        Catch ex As Exception
        End Try
    End Sub
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 03.04.2016, 04:49   #9
vik_S
Пользователь
 
Регистрация: 02.04.2016
Сообщений: 11
По умолчанию

Спасибо.
vik_S вне форума Ответить с цитированием
Старый 04.04.2016, 01:24   #10
vik_S
Пользователь
 
Регистрация: 02.04.2016
Сообщений: 11
По умолчанию

Здравствуйте, а как прочитать картинки, что бы размер картинки был оригинальный можно? Пробовал через CopyPicture и потом считываю через Clipboard.GetImage(), но картинка размером как и в документе Excel на странице, а как сделать размером оригинала?

Последний раз редактировалось vik_S; 04.04.2016 в 03:24.
vik_S вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создать zip архив без сжатия frommars Visual C++ 0 12.03.2012 16:07
Сохранение картинок CodeNOT PHP 8 29.01.2012 23:47
Сохранение картинок в файл Елена Гох Microsoft Office Excel 1 25.03.2011 11:40
Сохранение картинок. Marsik Помощь студентам 0 15.10.2009 14:40