示例#1
0
        /// <summary>
        /// Sets the sheet data.
        /// </summary>
        /// <param name="worksheet">The sheet.</param>
        /// <param name="rowIndex">The row index.</param>
        /// <param name="columnIndex">The column index.</param>
        /// <param name="data">The data.</param>
        /// <param name="flags">The import flags.</param>
        public static void SetSheetData(Worksheet worksheet, int rowIndex, int columnIndex, List <List <string> > data, TextFileOpenFlags flags)
        {
            int num       = data.Count;
            int maxLength = GetMaxLength(data);

            if ((num != 0) && (maxLength != 0))
            {
                ImportExportOptions opt = new ImportExportOptions(flags);
                opt.FixOptions(worksheet);
                int columnCount = opt.RowHeader ? worksheet.RowHeaderColumnCount : 0;
                int num4        = opt.ColumnHeader ? worksheet.ColumnHeaderRowCount : 0;
                int num5        = 0;
                maxLength -= columnCount;
                if (maxLength <= 0)
                {
                    maxLength = 0;
                }
                num -= num4;
                if (num <= 0)
                {
                    num5 = 0;
                }
                num -= num5;
                if (num <= 0)
                {
                    num = 0;
                }
                if (opt.ExpandRows && ((rowIndex + num) > worksheet.RowCount))
                {
                    worksheet.RowCount = rowIndex + num;
                }
                if (opt.ExpandColumns && ((columnIndex + maxLength) > worksheet.ColumnCount))
                {
                    worksheet.ColumnCount = columnIndex + maxLength;
                }
                int num6 = 0;
                for (int i = 0; num6 < data.Count; i++)
                {
                    List <string> rowData = data[num6];
                    if (rowData.Count > 0)
                    {
                        if ((num4 > 0) && (num6 < num4))
                        {
                            SetRowData(worksheet, rowData, i, columnIndex, maxLength, SheetArea.ColumnHeader, opt);
                        }
                        else if ((num > 0) && (i < worksheet.GetRowCount(SheetArea.Cells)))
                        {
                            if (num6 == num4)
                            {
                                i = rowIndex;
                            }
                            SetRowData(worksheet, rowData, i, 0, columnCount, SheetArea.CornerHeader | SheetArea.RowHeader, opt);
                            rowData.RemoveRange(0, columnCount);
                            SetRowData(worksheet, rowData, i, columnIndex, maxLength, SheetArea.Cells, opt);
                        }
                    }
                    num6++;
                }
            }
        }
示例#2
0
        /// <summary>
        /// Gets the sheet data.
        /// </summary>
        /// <param name="worksheet">The sheet.</param>
        /// <param name="rowStartIndex">Start index of the row.</param>
        /// <param name="rowEndIndex">End index of the row.</param>
        /// <param name="columnStartIndex">Start index of the column.</param>
        /// <param name="columnEndIndex">End index of the column.</param>
        /// <param name="flags">The save flags.</param>
        /// <returns></returns>
        public static List <List <object> > GetSheetData(Worksheet worksheet, int rowStartIndex, int rowEndIndex, int columnStartIndex, int columnEndIndex, TextFileSaveFlags flags)
        {
            List <List <object> > list = new List <List <object> >();
            ImportExportOptions   opt  = new ImportExportOptions(flags);

            opt.FixOptions(worksheet);
            if (opt.ColumnHeader)
            {
                list.AddRange((IEnumerable <List <object> >)GetPartData(worksheet, 0, worksheet.GetRowCount(SheetArea.ColumnHeader) - 1, columnStartIndex, columnEndIndex, SheetArea.ColumnHeader, opt));
            }
            list.AddRange((IEnumerable <List <object> >)GetPartData(worksheet, rowStartIndex, rowEndIndex, columnStartIndex, columnEndIndex, SheetArea.Cells, opt));
            return(list);
        }