Ejemplo n.º 1
0
        public static Byte[] ToExcel(F0Model.FilteredData data)
        {
            MemoryStream ms;
            UInt32       zoomScale = 100;
            String       fontName  = "Arial";
            Double       fontSize  = 10;

            using (Spreadsheet spreadsheet = new Spreadsheet(1)) // один лист
            {
                spreadsheet.SetSheetName(1, "Отчёт МДВ 1");
                spreadsheet.SetZoomScale(zoomScale);
                spreadsheet.SetFont(0, fontName, fontSize); // default font
                spreadsheet.SetFont(1, fontName, fontSize); // data font

                UInt32 dxfId = spreadsheet.AppendDifferentialFormat("font-weight: bold;");

                XlWorksheet[] wss = spreadsheet.Wss;

                GenerateColumns(wss[0], Md.Table1Columns);
                GenrateSheetData0(wss[0], data);
                //GenerateMergeCells(wss[0]);
                ///GenerateConditionalFormatting(wss[0], dxfId, t);
                ///GenerateBackgroundColor(wss[0], t);
                GeneratePageSetup(wss[0]);

                ms = spreadsheet.CreateDocument();
            }
            return(ms.ToArray());
        }
Ejemplo n.º 2
0
        public static void GenrateSheetData0(XlWorksheet ws, F0Model.FilteredData data)
        {
            UInt32 rowIndex    = 0;
            UInt32 columnIndex = 0;

            // строка заголовка
            columnIndex = 0;
            foreach (Md.TableColumn column in Md.Table1Columns)
            {
                String cellValueText = column.Caption;
                ws.UpsertCell(rowIndex, columnIndex, 1, cellValueText); // CellValues.SharedString
                columnIndex++;
            }
            rowIndex++;

            // строки данных
            for (Int32 ri = 0; ri < data.RowsCount; ri++)
            {
                F0Model.FilteredData.ItemArray items = data[ri];
                columnIndex = 0;
                foreach (Md.TableColumn column in Md.Table1Columns)
                {
                    Object value = items[column.ColumnName];
                    Type   type  = column.DataType;
                    AppendValueToSpreadsheetCell(ws, rowIndex, columnIndex, value, type);
                    columnIndex++;
                }
                rowIndex++;
            }

            /*
             *          // сумма по таблице столбца "Сумма закуп."
             *          {
             *              String f = "=SUM(N2:N" + rowIndex.ToString() + ")";
             *              ws.UpsertCell(rowIndex, 13, 3, "0", f); // CellValues.Number
             *          }
             *          // сумма по таблице столбца "Вес"
             *          {
             *              String f = "=SUM(Q2:Q" + rowIndex.ToString() + ")";
             *              ws.UpsertCell(rowIndex, 16, 3, "0", f); // CellValues.Number
             *          }
             *          // сумма по таблице столбца "Объём"
             *          {
             *              String f = "=SUM(R2:R" + rowIndex.ToString() + ")";
             *              ws.UpsertCell(rowIndex, 17, 3, "0", f); // CellValues.Number
             *          }
             *          // сумма по таблице столбца "Предельная оптовая сумма"
             *          {
             *              String f = "=SUM(T2:T" + rowIndex.ToString() + ")";
             *              ws.UpsertCell(rowIndex, 19, 3, "0", f); // CellValues.Number
             *          }
             *          // сумма по таблице столбца "Сумма продажи"
             *          {
             *              String f = "=SUM(V2:V" + rowIndex.ToString() + ")";
             *              ws.UpsertCell(rowIndex, 21, 3, "0", f); // CellValues.Number
             *          }
             *          rowIndex++;
             *          // сумма по таблице столбца "Сумма закуп." если "Страна" == Россия
             *          {
             *              ws.UpsertCell(rowIndex, 12, 2, "Россия"); // CellValues.SharedString
             *              String f = String.Format(
             *                  "=SUMIF(I{0}:I{1},\"=Россия\",N{0}:N{1})" +
             *                  "+SUMIF(I{0}:I{1},\"=Республика Беларусь\",N{0}:N{1})" +
             *                  "+SUMIF(I{0}:I{1},\"=Беларусь\",N{0}:N{1})" +
             *                  "+SUMIF(I{0}:I{1},\"=Казахстан\",N{0}:N{1})" +
             *                  "+SUMIF(I{0}:I{1},\"=Армения\",N{0}:N{1})", 2, (rowIndex - 1));
             *              ws.UpsertCell(rowIndex, 13, 3, "0", f); // CellValues.Number
             *              f = "=(N" + (rowIndex + 1).ToString() + "/N" + rowIndex.ToString() + ")*100";
             *              ws.UpsertCell(rowIndex, 14, 3, "0", f); // CellValues.Number
             *          }
             *          rowIndex++;
             *          // две таблицы с итогами и данными из шапки
             *          {
             *              ws.UpsertCell(rowIndex, 1, 2, "НМЦК"); // CellValues.SharedString
             *              ws.UpsertCell(rowIndex, 2, 3, h.Rows[0]["сумма_лота"]); // CellValues.Number
             *              ws.UpsertCell(rowIndex, 7, 2, "Сумма по закупке (руб)"); // CellValues.SharedString
             *              ws.UpsertCell(rowIndex, 8, 3, 0D, "=N" + (rowIndex - 1).ToString()); // CellValues.Number
             *              rowIndex++;
             *              ws.UpsertCell(rowIndex, 1, 2, "График поставки"); // CellValues.SharedString
             *              ws.UpsertCell(rowIndex, 2, 2, h.Rows[0]["график_поставки"] as String); // CellValues.SharedString
             *              ws.UpsertCell(rowIndex, 7, 2, "Наценка (%)"); // CellValues.SharedString
             *              ws.UpsertCell(rowIndex, 8, 3, 10D); // CellValues.Number
             *              rowIndex++;
             *              ws.UpsertCell(rowIndex, 1, 2, "Срок годности"); // CellValues.SharedString
             *              ws.UpsertCell(rowIndex, 2, 2, h.Rows[0]["требования_по_сроку_годности"] as String); // CellValues.SharedString
             *              ws.UpsertCell(rowIndex, 7, 2, "Прибыль (руб)"); // CellValues.SharedString
             *              ws.UpsertCell(rowIndex, 8, 3, 0D, "=I" + (rowIndex - 1).ToString() + "*I" + rowIndex.ToString() + "/100"); // CellValues.Number
             *              rowIndex++;
             *              ws.UpsertCell(rowIndex, 7, 2, "Сумма с наценкой (руб)"); // CellValues.SharedString
             *              ws.UpsertCell(rowIndex, 8, 3, 0D, "=I" + (rowIndex - 2).ToString() + "+I" + rowIndex.ToString()); // CellValues.Number
             *              rowIndex++;
             *              ws.UpsertCell(rowIndex, 7, 2, "Транспорт (руб)"); // CellValues.SharedString
             *              ws.UpsertCell(rowIndex, 8, 3, 0D); // CellValues.Number
             *              rowIndex++;
             *              ws.UpsertCell(rowIndex, 7, 2, "Минимальная сумма (руб)"); // CellValues.SharedString
             *              ws.UpsertCell(rowIndex, 8, 3, 0D, "=I" + (rowIndex - 1).ToString() + "+I" + rowIndex.ToString()); // CellValues.Number
             *              rowIndex++;
             *          }
             */
        }