Комментарии 20
Код без отступов выглядит нечитаемо. Воспользуйтесь тегом <source>!
+1
А почему именно с проприетарными форматами? Если попробовать с OpenDocument или Office Open XML?
+1
С XML документами Microsoft Office (docx, xlsx) Apache POI тоже работает. Касательно форматов OpenOffice (Libre Office и т.п.), так большинство моих знакомых вообще не в курсе что это такое :(
Обязательно попробую на досуге посмотреть как сделать аналогичную вещь с документами odf; уверен что проблем особых быть не должно
Обязательно попробую на досуге посмотреть как сделать аналогичную вещь с документами odf; уверен что проблем особых быть не должно
0
посмотрели?
Apache poi AFAIK не поддерживает ods.
Apache poi AFAIK не поддерживает ods.
0
Таки не поддерживает.
Вплотную не занимался, нагуглил либу ODFDOM но пока не пробовал ее использовать.
Если начинать копать, то отсюда: incubator.apache.org/odftoolkit/odfdom/Layers.html
Вплотную не занимался, нагуглил либу ODFDOM но пока не пробовал ее использовать.
Если начинать копать, то отсюда: incubator.apache.org/odftoolkit/odfdom/Layers.html
0
Но зачем?
-4
Just for fun.
Иногда такие задачи решать просто интересно.
Иногда такие задачи решать просто интересно.
+2
НЛО прилетело и опубликовало эту надпись здесь
Никакого практического применения этому я придумать, конечно, не могу. Такая цель и не ставилась, просто было интересно именно поиграться. Да и смотреть на удивленный взгляд человека, которому показываешь картину в экселе — то еще удовольствие
0
Давным давно видел картинку в вебе, которая показывается даже с отключенными картинками и сохранить её было сложно (только PrtScrn). Да, нарисовано было ячейками в один пиксель.
0
Немного VSTO и получаем довольно точную копию картинки =)
Документ и пачка dll-ок к нему
При желании, можно добавить ресайз и уменьшение глубины цвета — это дело техники.
Ключевой кусок кода:
P.S. На больших картинках лучше не эксперементировать — работает сие поделие не слишком быстро.
Документ и пачка dll-ок к нему
При желании, можно добавить ресайз и уменьшение глубины цвета — это дело техники.
Ключевой кусок кода:
using (var image = Image.FromFile(Target.Text) as Bitmap)
{
var range = Range[Cells[2, 2], Cells[image.Height + 2, image.Width + 2]] as Excel.Range;
range.ColumnWidth = 1.0 / 12; // магия, для столбцов и колонок используются разные единицы измерения
range.RowHeight = 1.0;
for (int rowIndex = 0; rowIndex < image.Height; rowIndex++)
{
for (int colIndex = 0; colIndex < image.Width; colIndex++)
{
var cell = Range[Cells[rowIndex + 2, colIndex + 2], Cells[rowIndex + 2, colIndex + 2]] as Excel.Range;
cell.Interior.Color = ColorTranslator.ToOle(image.GetPixel(colIndex, rowIndex));
}
}
}
P.S. На больших картинках лучше не эксперементировать — работает сие поделие не слишком быстро.
0
для столбцов и колонок
конечно же, для столбцов и строк =) спать пора идти
0
Ячейки размером в пиксель будут смотреться шикарно. Правда ограничение на количество ячеек остается, так что большие (по разрешению) картинки все равно остаются не у дел :(
0
там и так ячейки в один пиксель =) а по количеству строк и столбцов — боюсь, вероятность того, что пользователь задолбается ждать, значительно выше того, что у Экселя 2010+ закончится индекс столбцов (16384 или XFD) или тем более строк (1048576)
0
Минут 30 по-моему работало. Делал в августе, а исходники где-то потерялись, к сожалению.
Скриншот
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Рисунки в MS Excel при помощи Apache POI