Пример #1
0
        private void Size(string key)
        {
            var value = PropertyBag[key];

            if (value == null || value == DBNull.Value)
            {
                return;
            }
            PropertyBag[key] = ViewHelper.ConvertToUserFriendlySize(Convert.ToUInt64(value));
        }
Пример #2
0
        public static byte[] DocumentsLog(ISession session, DocumentFilter filter)
        {
            var book        = new HSSFWorkbook();
            var sheet       = book.CreateSheet("Неразобранные накладные");
            var row         = 0;
            var headerStyle = NPOIExcelHelper.GetHeaderStype(book);
            var dataStyle   = NPOIExcelHelper.GetDataStyle(book);
            var sheetRow    = sheet.CreateRow(row++);

            NPOIExcelHelper.FillNewCell(sheetRow, 0, "Неразобранные накладные", headerStyle);
            sheetRow = sheet.CreateRow(row++);
            NPOIExcelHelper.FillNewCell(sheetRow, 0, String.Format("Период: с {0} по {1}",
                                                                   filter.Period.Begin.ToString("dd.MM.yyyy"),
                                                                   filter.Period.End.ToString("dd.MM.yyyy")),
                                        book.CreateCellStyle());
            sheetRow = sheet.CreateRow(row++);
            NPOIExcelHelper.FillNewCell(sheetRow, 0, String.Format("Дата подготовки отчета: {0}", DateTime.Now), book.CreateCellStyle());
            sheetRow = sheet.CreateRow(row++);
            NPOIExcelHelper.FillNewCell(sheetRow, 0, String.Format("Регион: {0}", filter.Region == null ? "Все" : filter.Region.Name), book.CreateCellStyle());
            sheet.CreateRow(row++);
            var tableHeaderRow = row;

            sheetRow = sheet.CreateRow(row++);
            NPOIExcelHelper.FillNewCell(sheetRow, 0, "Номер документа", headerStyle);
            NPOIExcelHelper.FillNewCell(sheetRow, 1, "Дата получения", headerStyle);
            NPOIExcelHelper.FillNewCell(sheetRow, 2, "Тип документа", headerStyle);
            NPOIExcelHelper.FillNewCell(sheetRow, 3, "От поставщика", headerStyle);
            NPOIExcelHelper.FillNewCell(sheetRow, 4, "Клиенту", headerStyle);
            NPOIExcelHelper.FillNewCell(sheetRow, 5, "На адрес", headerStyle);
            NPOIExcelHelper.FillNewCell(sheetRow, 6, "Название файла", headerStyle);
            NPOIExcelHelper.FillNewCell(sheetRow, 7, "Размер", headerStyle);
            NPOIExcelHelper.FillNewCell(sheetRow, 8, "Парсер", headerStyle);
            NPOIExcelHelper.FillNewCell(sheetRow, 9, "Комментарий", headerStyle);

            var items = filter.Find(session, true);

            foreach (var item in items)
            {
                sheetRow = sheet.CreateRow(row++);
                NPOIExcelHelper.FillNewCell(sheetRow, 0, item.Id.ToString(), dataStyle);
                NPOIExcelHelper.FillNewCell(sheetRow, 1, item.LogTime.ToString(), dataStyle);
                NPOIExcelHelper.FillNewCell(sheetRow, 2, BindingHelper.GetDescription(item.DocumentType), dataStyle);
                NPOIExcelHelper.FillNewCell(sheetRow, 3, item.Supplier, dataStyle);
                NPOIExcelHelper.FillNewCell(sheetRow, 4, item.Client, dataStyle);
                NPOIExcelHelper.FillNewCell(sheetRow, 5, item.Address, dataStyle);
                NPOIExcelHelper.FillNewCell(sheetRow, 6, item.FileName, dataStyle);
                NPOIExcelHelper.FillNewCell(sheetRow, 7,
                                            item.DocumentSize == null ? ""
                                                : ViewHelper.ConvertToUserFriendlySize(item.DocumentSize.Value),
                                            dataStyle);
                NPOIExcelHelper.FillNewCell(sheetRow, 8, item.Parser, dataStyle);
                NPOIExcelHelper.FillNewCell(sheetRow, 9, item.Addition, dataStyle);
            }

            // добавляем автофильтр
            sheet.SetAutoFilter(new CellRangeAddress(tableHeaderRow, row, 0, 9));

            sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, 9));

            // устанавливаем ширину столбцов
            for (int i = 0; i < 10; i++)
            {
                sheet.SetColumnWidth(i, sheet.GetColumnWidth(i) * 2);
            }

            sheet.SetColumnWidth(5, sheet.GetColumnWidth(5) * 2);

            var buffer = new MemoryStream();

            book.Write(buffer);
            return(buffer.ToArray());
        }