예제 #1
0
        private void ExportDataTable(DataTableExporter exporter, Workbook book, WorkerThread thread)
        {
            //TudqThem
            if (modExport == 1 & columnRemove != null)
            {
                for (var j = 0; j < columnRemove.Rows.Count; j++)
                {
                    for (var i = 0; i < ResultTable.Columns.Count; i++)
                    {
                        if (ResultTable.Columns[i].ColumnName == columnRemove.Rows[j]["Value"].ToString())
                        {
                            ResultTable.Columns.RemoveAt(i);
                            break;
                        }
                    }
                }
            }
            //End
            var sheet = book.Worksheets[book.Worksheets.Add()];

            sheet.Name = string.Format(Language.SheetName, book.Worksheets.Count);

            thread.JobName = string.Format(Language.SaveToSheetStatus, book.Worksheets.Count);
            exporter.ExportDataTable(sheet, ResultTable);

            thread.JobName = string.Format(Language.ApplyFormatToSheetStatus, book.Worksheets.Count);
            sheet.AutoFitColumns();
        }
        private void barBtnExport_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (ds != null)
            {
                return;
            }
            #region #exportdatatable
            Workbook wbook = new Workbook();
            wbook.LoadDocument("TopTradingPartners.xlsx");
            Worksheet worksheet = wbook.Worksheets[0];
            CellRange range     = worksheet.Tables[0].Range;

            DataTable dataTable = worksheet.CreateDataTable(range, true);
            // Change the data type of the "As Of" column to text.
            dataTable.Columns["As Of"].DataType = System.Type.GetType("System.String");

            DataTableExporter exporter = worksheet.CreateDataTableExporter(range, dataTable, true);
            exporter.CellValueConversionError += exporter_CellValueConversionError;
            MyConverter myconverter = new MyConverter();
            exporter.Options.CustomConverters.Add("As Of", myconverter);
            // Set the export value for empty cell.
            myconverter.EmptyCellValue         = "N/A";
            exporter.Options.ConvertEmptyCells = true;

            exporter.Options.DefaultCellValueToColumnTypeConverter.SkipErrorValues = false;

            exporter.Export();
            #endregion #exportdatatable
            ds = dataTable;
            gridControl1.DataSource = ds;
        }
        private void barButtonItemUseExporterOptions_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            #region #DataExportWithOptions
            Worksheet worksheet = spreadsheetControl1.Document.Worksheets[0];
            Range     range     = worksheet.Tables[0].Range;

            // Create a data table with column names obtained from the first row in a range.
            // Column data types are obtained from cell value types of cells in the first data row of the worksheet range.
            DataTable dataTable = worksheet.CreateDataTable(range, true);

            // Create the exporter that obtains data from the specified range which has a header row and populates the previously created data table.
            DataTableExporter exporter = worksheet.CreateDataTableExporter(range, dataTable, true);
            // Handle value conversion errors.
            exporter.CellValueConversionError += exporter_CellValueConversionError;

            // Specify exporter options.
            exporter.Options.ConvertEmptyCells = true;
            exporter.Options.DefaultCellValueToColumnTypeConverter.EmptyCellValue  = 0;
            exporter.Options.DefaultCellValueToColumnTypeConverter.SkipErrorValues = barCheckItemSkipErrors.Checked;

            // Perform the export.
            exporter.Export();
            #endregion #DataExportWithOptions
            // A custom method that displays the resulting data table.
            ShowResult(dataTable);
        }
예제 #4
0
        public static DataTable ExportUseExporterOptions(Range range, bool rangeHasHeaders, bool skipErrorValues)
        {
            #region #DataExportWithOptions
            Worksheet worksheet = range.Worksheet;

            // Create a data table with column names obtained from the first row in a range.
            // Column data types are obtained from cell value types of cells in the first data row of the worksheet range.
            DataTable dataTable = worksheet.CreateDataTable(range, rangeHasHeaders);

            // Create the exporter that obtains data from the specified range which has a header row and populates the previously created data table.
            DataTableExporter exporter = worksheet.CreateDataTableExporter(range, dataTable, rangeHasHeaders);
            // Handle value conversion errors.
            exporter.CellValueConversionError += exporter_CellValueConversionError;

            // Specify exporter options.
            exporter.Options.ConvertEmptyCells = true;
            exporter.Options.DefaultCellValueToColumnTypeConverter.EmptyCellValue  = 0;
            exporter.Options.DefaultCellValueToColumnTypeConverter.SkipErrorValues = skipErrorValues;

            // Perform the export.
            exporter.Export();
            #endregion #DataExportWithOptions
            // A custom method that displays the resulting data table.
            return(dataTable);
        }
예제 #5
0
        private void barButtonItem1_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            Worksheet worksheet = spreadsheetControl1.Document.Worksheets[0];
            Range     range     = worksheet.Tables[0].Range;
            // Create a data table with column names obtained from the first row in a range.
            // Column data types are obtained from cell value types of cells in the first data row of the worksheet range.
            DataTable dataTable = worksheet.CreateDataTable(range, true);

            // Change the data type of the "As Of" column to text.
            dataTable.Columns["As Of"].DataType = System.Type.GetType("System.String");
            // Create the exporter that obtains data from the specified range,
            //skips header row if required and populates the specified data table.
            DataTableExporter exporter = worksheet.CreateDataTableExporter(range, dataTable, true);
            // Specify a custom converter for the "As Of" column.
            DateTimeToStringConverter toDateStringConverter = new DateTimeToStringConverter();

            exporter.Options.CustomConverters.Add("As Of", toDateStringConverter);
            // Set the export value for empty cell.
            toDateStringConverter.EmptyCellValue = "N/A";
            // Specify that empty cells and cells with errors should be processed.
            exporter.Options.ConvertEmptyCells = true;
            exporter.Options.DefaultCellValueToColumnTypeConverter.SkipErrorValues = false;
            // Perform the export.
            exporter.Export();
            // A custom method that displays the resulting data table.
            ShowResult(dataTable);
        }
예제 #6
0
        private string DownEnrollTpl(string pRequest)
        {
            var rp = pRequest.DeserializeJSONTo <APIRequest <JIT.CPOS.BS.BLL.LEventSignUpBLL.DownEnrollTplRP> >();

            rp.Parameters.Validate();

            var       rd        = new EmptyRD(); // new JIT.CPOS.BS.BLL.LEventSignUpBLL.DownEnrollTplRD();
            DataTable dataTable = PrivateLEventSignUpBLL.DownEnrollTpl(rp.Parameters.EventID, rp.Parameters.Status);

            //数据获取
            Workbook wb       = DataTableExporter.WriteXLS(dataTable, 0);
            string   savePath = HttpContext.Current.Server.MapPath(@"~/File/Excel");

            if (!System.IO.Directory.Exists(savePath))
            {
                System.IO.Directory.CreateDirectory(savePath);
            }
            savePath = savePath + "\\报名人员模板-" + dataTable.TableName + ".xls";
            wb.Save(savePath);//保存Excel文件
            new ExcelCommon().OutPutExcel(HttpContext.Current, savePath);
            HttpContext.Current.Response.End();

            var rsp = new SuccessResponse <IAPIResponseData>(rd);

            if (dataTable == null || !(dataTable.Columns.Count > 0))
            {
                rsp.ResultCode = 201;
                rsp.Message    = "生成失败!";
            }

            return(rsp.ToJSON());
        }
예제 #7
0
        private void barButtonItem1_ItemClick(Range range)
        {
            Worksheet worksheet = range.Worksheet;

            // Create a data table with column names obtained from the first row in a range.
            // Column data types are obtained from cell value types of cells in the first data row of the worksheet range.
            DataTable dataTable = worksheet.CreateDataTable(range, true);

            // Change the data type of the "As Of" column to text.
            dataTable.Columns["As Of"].DataType = System.Type.GetType("System.String");
            // Create the exporter that obtains data from the specified range and populates the specified data table.
            DataTableExporter exporter = worksheet.CreateDataTableExporter(range, dataTable, true);

            // Handle value conversion errors.
            exporter.CellValueConversionError += exporter_CellValueConversionError;

            // Specify a custom converter for the "As Of" column.
            DateTimeToStringConverter toDateStringConverter = new DateTimeToStringConverter();

            exporter.Options.CustomConverters.Add("As Of", toDateStringConverter);
            // Set the export value for empty cell.
            toDateStringConverter.EmptyCellValue = "N/A";
            // Specify that empty cells and cells with errors should be processed.
            exporter.Options.ConvertEmptyCells = true;
            exporter.Options.DefaultCellValueToColumnTypeConverter.SkipErrorValues = false;

            // Perform the export.
            exporter.Export();

            // A custom method that displays the resulting data table.
            //ShowResult(dataTable);
        }
        private void ExportSelectionStopOnEmptyRow()
        {
            #region #StopExportOnEmptyRow
            Worksheet worksheet = spreadsheetControl1.Document.Worksheets.ActiveWorksheet;
            Range     range     = worksheet.Selection;
            // Determine whether the first row in a range contains headers.
            bool rangeHasHeaders = this.barCheckItemHasHeaders1.Checked;
            // Determine whether an empty row must stop conversion.
            bool stopOnEmptyRow = barCheckItemStopEmptyRow.Checked;

            // Create a data table with column names obtained from the first row in a range if it has headers.
            // Column data types are obtained from cell value types of cells in the first data row of the worksheet range.
            DataTable dataTable = worksheet.CreateDataTable(range, rangeHasHeaders);
            // Create the exporter that obtains data from the specified range,
            // skips the header row (if required) and populates the previously created data table.
            DataTableExporter exporter = worksheet.CreateDataTableExporter(range, dataTable, rangeHasHeaders);
            // Handle value conversion errors.
            exporter.CellValueConversionError += (sender, args) => { args.Action = DataTableExporterAction.Continue; };
            if (stopOnEmptyRow)
            {
                exporter.Options.SkipEmptyRows = false;
                // Handle empty row.
                exporter.ProcessEmptyRow += (sender, args) => { args.Action = DataTableExporterAction.Stop; };
            }
            // Perform the export.
            exporter.Export();
            #endregion #StopExportOnEmptyRow
            // A custom method that displays the resulting data table.
            ShowResult(dataTable);
        }
예제 #9
0
        public FileResult ExportInventoryListToExcel(InventoryListModel model)
        {
            var queryInfo = new InventoryListQueryInfo();

            queryInfo.SupplierID      = base.CurrentUser.SupplierID;
            queryInfo.ProductName     = model.ProductName.SafeTrim();
            queryInfo.Spu             = model.Spu.SafeTrim();
            queryInfo.Sku             = model.Sku.SafeTrim();
            queryInfo.BarCode         = model.BarCode.SafeTrim();
            queryInfo.SkuStatus       = model.SkuStatus;
            queryInfo.IsLowStockAlarm = model.IsLowStockAlarm;
            var fileName = "Inventory" + DateTime.Now.ToString("yyyyMMdd") + ".xlsx";

            try
            {
                var dateTable  = bll.GetSkuInventoryListData(queryInfo, LanguageEnum.TraditionalChinese);
                var dtExporter = new DataTableExporter(EnumExcelType.XLSX);
                dtExporter.AddTable <InventoryListExportModel>(dateTable, "SKU庫存");
                return(XlsxFile(dtExporter.Export(), fileName));
            }
            catch (Exception ex)
            {
                LogHelper.Error(ex);
            }
            return(XlsxFile(new byte[0], fileName));
        }
예제 #10
0
        public static DataTable SimpleDataExport(Range range, bool rangeHasHeaders)
        {
            #region #SimpleDataExport
            Worksheet worksheet = range.Worksheet;

            // Create a data table with column names obtained from the first row in a range if it has headers.
            // Column data types are obtained from cell value types of cells in the first data row of the worksheet range.
            DataTable dataTable = worksheet.CreateDataTable(range, rangeHasHeaders);

            //Validate cell value types. If cell value types in a column are different, the column values are exported as text.
            for (int col = 0; col < range.ColumnCount; col++)
            {
                CellValueType cellType = range[0, col].Value.Type;
                for (int r = 1; r < range.RowCount; r++)
                {
                    if (cellType != range[r, col].Value.Type)
                    {
                        dataTable.Columns[col].DataType = typeof(string);
                        break;
                    }
                }
            }

            // Create the exporter that obtains data from the specified range,
            // skips the header row (if required) and populates the previously created data table.
            DataTableExporter exporter = worksheet.CreateDataTableExporter(range, dataTable, rangeHasHeaders);
            // Handle value conversion errors.
            exporter.CellValueConversionError += exporter_CellValueConversionError;

            // Perform the export.
            exporter.Export();
            #endregion #SimpleDataExport
            // A custom method that displays the resulting data table.
            return(dataTable);
        }
        public DataTable GetTableFromExcel()
        {
            Workbook book = new Workbook();

            book.LoadDocument(HomeControllerUploadControlSettings.resultFilePath);
            Worksheet         sheet    = book.Worksheets.ActiveWorksheet;
            CellRange         range    = sheet.GetUsedRange();
            DataTable         table    = sheet.CreateDataTable(range, false);
            DataTableExporter exporter = sheet.CreateDataTableExporter(range, table, false);

            exporter.CellValueConversionError += exporter_CellValueConversionError;
            exporter.Export();
            return(table);
        }
예제 #12
0
        public void ExportVipInfo(Dictionary <string, string> columns, DataTable dt, string fileName)
        {
            Workbook wb       = DataTableExporter.WriteXLS(dt, 0);
            string   savePath = HttpContext.Current.Server.MapPath(@"~/File/VipCard");

            if (!System.IO.Directory.Exists(savePath))
            {
                System.IO.Directory.CreateDirectory(savePath);
            }
            savePath = savePath + "\\" + fileName + DateTime.Now.ToFileTime() + ".xls";
            wb.Save(savePath);//保存Excel文件
            new ExcelCommon().OutPutExcel(HttpContext.Current, savePath);
            HttpContext.Current.Response.End();
        }
예제 #13
0
    private DataTable GetTableFromExcel()
    {
        Workbook book = new Workbook();

        book.InvalidFormatException += book_InvalidFormatException;
        book.LoadDocument(FilePath);
        Worksheet         sheet    = book.Worksheets.ActiveWorksheet;
        CellRange         range    = sheet.GetUsedRange();
        DataTable         table    = sheet.CreateDataTable(range, false);
        DataTableExporter exporter = sheet.CreateDataTableExporter(range, table, false);

        exporter.CellValueConversionError += exporter_CellValueConversionError;
        exporter.Export();
        return(table);
    }
        private static void ExportDataSet(ExportContext context, DataSet dataSet, JsonWriter writer)
        {
            Debug.Assert(context != null);
            Debug.Assert(dataSet != null);
            Debug.Assert(writer != null);

            writer.WriteStartObject();

            foreach (DataTable table in dataSet.Tables)
            {
                writer.WriteMember(table.TableName);
                DataTableExporter.ExportTable(context, table, writer);
            }

            writer.WriteEndObject();
        }
예제 #15
0
        public FileResult ExportInventoryListToExcel(InventoryListViewModel Model)
        {
            var fileName = "Inventory" + DateTime.Now.ToString("yyyyMMdd") + ".xlsx";

            try
            {
                var dateTable  = productBll.GetProductInventoryListData(Model, LanguageEnum.TraditionalChinese);
                var dtExporter = new DataTableExporter(EnumExcelType.XLSX);
                dtExporter.AddTable <InventoryListExportModel>(dateTable, "SKU庫存");
                return(XlsxFile(dtExporter.Export(), fileName));
            }
            catch (Exception ext)
            {
                LogHelper.Error(ext);
            }
            return(XlsxFile(new byte[0], fileName));
        }
예제 #16
0
        private void barButtonItemRangeToDataTable_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            #region #SimpleDataExport
            Worksheet worksheet       = spreadsheetControl1.Document.Worksheets.ActiveWorksheet;
            Range     range           = worksheet.Selection;
            bool      rangeHasHeaders = this.barCheckItemHasHeaders1.Checked;
            // Create a data table with column names obtained from the first row in a range if it has headers.
            // Column data types are obtained from cell value types of cells in the first data row of the worksheet range.
            DataTable dataTable = worksheet.CreateDataTable(range, rangeHasHeaders);
            // Create the exporter that obtains data from the specified range,
            // skips the header row (if required) and populates the specified data table.
            DataTableExporter exporter = worksheet.CreateDataTableExporter(range, dataTable, rangeHasHeaders);

            // Perform the export.
            exporter.Export();
            #endregion #SimpleDataExport
            // A custom method that displays the resulting data table.
            ShowResult(dataTable);
        }
        private void barButtonItemRangeToDataTable_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (barCheckItemStopEmptyRow.Checked)
            {
                ExportSelectionStopOnEmptyRow();
                return;
            }
            #region #SimpleDataExport
            Worksheet worksheet       = spreadsheetControl1.Document.Worksheets.ActiveWorksheet;
            Range     range           = worksheet.Selection;
            bool      rangeHasHeaders = this.barCheckItemHasHeaders1.Checked;

            // Create a data table with column names obtained from the first row in a range if it has headers.
            // Column data types are obtained from cell value types of cells in the first data row of the worksheet range.
            DataTable dataTable = worksheet.CreateDataTable(range, rangeHasHeaders);

            //Validate cell value types. If cell value types in a column are different, the column values are exported as text.
            for (int col = 0; col < range.ColumnCount; col++)
            {
                CellValueType cellType = range[0, col].Value.Type;
                for (int r = 1; r < range.RowCount; r++)
                {
                    if (cellType != range[r, col].Value.Type)
                    {
                        dataTable.Columns[col].DataType = typeof(string);
                        break;
                    }
                }
            }

            // Create the exporter that obtains data from the specified range,
            // skips the header row (if required) and populates the previously created data table.
            DataTableExporter exporter = worksheet.CreateDataTableExporter(range, dataTable, rangeHasHeaders);
            // Handle value conversion errors.
            exporter.CellValueConversionError += exporter_CellValueConversionError;

            // Perform the export.
            exporter.Export();
            #endregion #SimpleDataExport
            // A custom method that displays the resulting data table.
            ShowResult(dataTable);
        }
예제 #18
0
        public void ParseExcelFileForData()
        {
            if (string.IsNullOrWhiteSpace(model.bindingProperty.ExcelFilePath))
            {
                XtraMessageBox.Show("Please provide the file path.", "Excel Parse Error");
                model.bindingProperty.AllowNext = false;
            }
            else
            {
                try
                {
                    using (Workbook workbook = new Workbook())
                    {
                        workbook.LoadDocument(model.bindingProperty.ExcelFilePath);
                        Worksheet         worksheet       = workbook.Worksheets[0];
                        Range             range           = worksheet.GetDataRange();
                        DataTable         exportDataTable = worksheet.CreateDataTable(range, model.bindingProperty.FirstRowHasHeaders);
                        DataTableExporter exporter        = worksheet.CreateDataTableExporter(range, exportDataTable, model.bindingProperty.FirstRowHasHeaders);
                        exporter.Options.DefaultCellValueToColumnTypeConverter.SkipErrorValues = false;
                        exporter.Options.ConvertEmptyCells = true;
                        exporter.Export();

                        model.bindingProperty.ExcelDataTable = exportDataTable;
                        model.bindingProperty.AllowNext      = true;
                    }

                    var columnNames = model.GetExcelDataColumnNames();
                    if (columnNames.Contains(string.Empty))
                    {
                        XtraMessageBox.Show("One or more column does not contains column name.", "Excel Parse Error");
                        model.bindingProperty.AllowNext = false;
                    }
                }
                catch (Exception ex)
                {
                    XtraMessageBox.Show(ex.Message, "Excel Parse Error");
                    model.bindingProperty.AllowNext = false;
                }
            }
        }
예제 #19
0
        public static DataTable ExportRangeStopOnEmptyRow(Range range, bool rangeHasHeaders, bool stopOnEmptyRow)
        {
            // Create a data table with column names obtained from the first row in a range if it has headers.
            // Column data types are obtained from cell value types of cells in the first data row of the worksheet range.
            DataTable dataTable = range.Worksheet.CreateDataTable(range, rangeHasHeaders);
            // Create the exporter that obtains data from the specified range,
            // skips the header row (if required) and populates the previously created data table.
            DataTableExporter exporter = range.Worksheet.CreateDataTableExporter(range, dataTable, rangeHasHeaders);

            // Handle value conversion errors.
            exporter.CellValueConversionError += (sender, args) => { args.Action = DataTableExporterAction.Continue; };
            if (stopOnEmptyRow)
            {
                exporter.Options.SkipEmptyRows = false;
                // Handle empty row.
                exporter.ProcessEmptyRow += (sender, args) => { args.Action = DataTableExporterAction.Stop; };
            }
            // Perform the export.
            exporter.Export();
            // A custom method that displays the resulting data table.
            return(dataTable);
        }
예제 #20
0
        public static string DataTableToExcel(DataTable dataTable, string folderName, string fileNamePre, string postOrGet = "Get")
        {
            //数据获取
            Workbook wb       = DataTableExporter.WriteXLS(dataTable, 0);
            string   savePath = HttpContext.Current.Server.MapPath(@"~/File/Excel/" + folderName);

            if (!System.IO.Directory.Exists(savePath))
            {
                System.IO.Directory.CreateDirectory(savePath);
            }

            string fileName = fileNamePre + DateTime.Now.ToFileTime() + ".xls";

            wb.Save(savePath + "\\" + fileName);//保存Excel文件

            if (postOrGet.ToLower() == "get")
            {
                OutputExcel(HttpContext.Current, savePath);
                HttpContext.Current.Response.End();
            }

            return(@"/File/Excel/" + folderName + "/" + fileName);
        }
예제 #21
0
        private void ExportTable(Dictionary <string, string> columns, DataTable dt, string fileName)
        {
            DataColumn dc = new DataColumn();

            dt = dt.DefaultView.ToTable(false, columns.Keys.ToArray());

            foreach (DataColumn c in dt.Columns)
            {
                string title;
                columns.TryGetValue(c.ColumnName, out title);
                c.ColumnName = title;
            }
            Workbook wb       = DataTableExporter.WriteXLS(dt, 0);
            string   savePath = HttpContext.Current.Server.MapPath(@"~/File/Vip");

            if (!System.IO.Directory.Exists(savePath))
            {
                System.IO.Directory.CreateDirectory(savePath);
            }
            savePath = savePath + "\\" + fileName + DateTime.Now.ToFileTime() + ".xls";
            wb.Save(savePath);//保存Excel文件
            new ExcelCommon().OutPutExcel(HttpContext.Current, savePath);
            HttpContext.Current.Response.End();
        }
예제 #22
0
        public string ExportStaff(string pRequest)
        {
            var rd     = new APIResponse <ExportStaffRD>();
            var rdData = new ExportStaffRD();
            var rp     = pRequest.DeserializeJSONTo <APIRequest <ExportStaffRP> >();

            if (rp.Parameters == null)
            {
                throw new ArgumentException();
            }

            if (rp.Parameters != null)
            {
                rp.Parameters.Validate();
            }

            var loggingSessionInfo = new LoggingSessionManager().CurrentSession;

            try
            {
                //获取普通员工employee角色标识
                string    roleId        = string.Empty;
                var       appSysService = new AppSysService(loggingSessionInfo);
                RoleModel list          = new RoleModel();
                string    key           = "D8C5FF6041AA4EA19D83F924DBF56F93";
                list = appSysService.GetRolesByAppSysId(key, 1000, 0, "", "", "");

                foreach (var item in list.RoleInfoList)
                {
                    if (item.Role_Code.ToLower() == "employee")
                    {
                        roleId = item.Role_Id;
                        break;
                    }
                }

                if (string.IsNullOrEmpty(roleId) || roleId == "")
                {
                    throw new APIException("employee的roleId未获取到")
                          {
                              ErrorCode = 103
                          }
                }
                ;

                rp.Parameters.ExportType = rp.Parameters.ExportType.ToLower();
                //所有页
                if (rp.Parameters.ExportType == "allpage")
                {
                    rp.Parameters.PageIndex = 0;
                    rp.Parameters.PageSize  = 5000;
                }

                //数据获取
                T_UserBLL       userBll   = new T_UserBLL(loggingSessionInfo);
                int             totalPage = 0;
                QueryUserEntity entity    = new QueryUserEntity();
                entity.QUserName      = rp.Parameters.Keyword;
                entity.QUnitID        = rp.Parameters.UnitID;
                entity.QJobFunctionID = rp.Parameters.JobFunctionID;
                entity.QRoleID        = roleId;
                DataTable dTable = userBll.GetUserList(rp.Parameters.UserID, rp.Parameters.PageIndex, rp.Parameters.PageSize, out totalPage, entity);

                //过滤选择的员工
                if (rp.Parameters.ExportType == "select")
                {
                    string[] ids    = rp.Parameters.StaffIds.Split(',');
                    string   strIds = "'',";
                    for (int i = 0; i < ids.Length; i++)
                    {
                        strIds += "'" + ids[i] + "',";
                    }
                    strIds = strIds.Substring(0, strIds.Length - 1);
                    DataRow[] drs = dTable.Select("UserID in (" + strIds + ")");
                    DataTable d   = dTable.Clone();
                    foreach (var item in drs)
                    {
                        d.ImportRow(item);
                    }
                    dTable = d;
                }
                else
                if (rp.Parameters.ExportType == "noselect")
                {
                    dTable = dTable.Clone();
                }

                //排序
                DataView dv   = dTable.DefaultView;
                string   sort = string.IsNullOrEmpty(rp.Parameters.sort) ? "UserEmail asc" : rp.Parameters.sort;
                sort    = "UserStatus desc," + sort;
                dv.Sort = sort;
                DataTable dt2 = dv.ToTable();
                dTable = dt2;

                //表格标题设置
                DataTable lastTable = dTable.DefaultView.ToTable(false, "UserCode", "UserName", "UserNameEn", "UserEmail", "UserGenderT", "UserBirthday", "UserTelephone", "UserCellphone", "DeptName", "JobFuncName", "UserStatusDesc");
                //重置标题名称
                lastTable.Columns["UserCode"].ColumnName       = "用户编码";
                lastTable.Columns["UserName"].ColumnName       = "姓名";
                lastTable.Columns["UserNameEn"].ColumnName     = "英文名";
                lastTable.Columns["UserEmail"].ColumnName      = "邮箱";
                lastTable.Columns["UserGenderT"].ColumnName    = "性别";
                lastTable.Columns["UserBirthday"].ColumnName   = "生日";
                lastTable.Columns["UserTelephone"].ColumnName  = "手机";
                lastTable.Columns["UserCellphone"].ColumnName  = "电话";
                lastTable.Columns["DeptName"].ColumnName       = "部门";
                lastTable.Columns["JobFuncName"].ColumnName    = "职务";
                lastTable.Columns["UserStatusDesc"].ColumnName = "状态";

                //数据获取
                Workbook wb       = DataTableExporter.WriteXLS(lastTable, 0);
                string   savePath = HttpContext.Current.Server.MapPath(@"~/File/Excel");
                if (!System.IO.Directory.Exists(savePath))
                {
                    System.IO.Directory.CreateDirectory(savePath);
                }
                savePath = savePath + "\\企信员工-" + lastTable.TableName + ".xls";
                wb.Save(savePath);//保存Excel文件
                new ExcelCommon().OutPutExcel(HttpContext.Current, savePath);

                HttpContext.Current.Response.End();

                rd.ResultCode = 0;
            }
            catch (Exception ex)
            {
                rd.ResultCode = 103;
                rd.Message    = ex.Message;
            }
            return(rd.ToJSON());
        }
예제 #23
0
        private void DoWork()
        {
            while (true)
            {
                try
                {
                    ConfigurationManager.RefreshSection("appSettings");
                    var time = ConfigurationManager.AppSettings["Timing"];

                    TimeSpan.TryParse(time, out _timeSpan);
                    if (DateTime.Now.TimeOfDay.Hours == _timeSpan.Hours)
                    {
                        //支持配置多客户
                        string[] customerIDs = ConfigurationManager.AppSettings["CustomerIDs"].Split(',');

                        foreach (string customerID in customerIDs)
                        {
                            loggingSessionInfo = Default.GetBSLoggingSession(customerID, "1");
                            var eventsService = new LEventsBLL(loggingSessionInfo);

                            LEventsEntity queryEntity = new LEventsEntity();
                            queryEntity.EventType = 0;
                            var data = eventsService.WEventGetWebEvents(queryEntity, 0, 100000000);

                            foreach (var item in data)
                            {
                                XieHuiBaoBLL b = new XieHuiBaoBLL(loggingSessionInfo, "vip");

                                List <DefindControlEntity> l          = new List <DefindControlEntity>();
                                PageResultEntity           pageEntity = null;
                                try
                                {
                                    pageEntity = b.GetPageDataByEventID(l, 100000000, 0, item.EventID);
                                }
                                catch (Exception e)
                                {
                                    Loggers.Debug(new DebugLogInfo
                                    {
                                        Message = string.Format("{0} {1} (EventID:{3})报名人员信息通知邮件发送{2}", DateTime.Now.ToShortDateString(), DateTime.Now.TimeOfDay, "失败", item.EventID)
                                    });
                                    Loggers.Exception(new BasicUserInfo(), e);
                                    continue;
                                }

                                if (pageEntity.GridData != null)
                                {
                                    if (pageEntity.GridData.Rows.Count == 0)
                                    {
                                        continue;
                                    }
                                }

                                GridInitEntity g = GetInitGridDataByEventID(item.EventID);
                                if (pageEntity != null && pageEntity.GridData != null)
                                {
                                    #region 替换标题信息
                                    if (g != null && g.GridColumnDefinds != null)
                                    {
                                        if (pageEntity.GridData.Columns.Contains("ROW_NUMBER"))
                                        {
                                            pageEntity.GridData.Columns.Remove("ROW_NUMBER");
                                        }
                                        if (pageEntity.GridData.Columns.Contains("SignUpID"))
                                        {
                                            pageEntity.GridData.Columns.Remove("SignUpID");
                                        }

                                        if (pageEntity.GridData.Columns.Count == 0)
                                        {
                                            continue;
                                        }


                                        for (int i = 0; i < pageEntity.GridData.Columns.Count; i++)
                                        {
                                            for (int j = 0; j < g.GridColumnDefinds.Count; j++)
                                            {
                                                if (pageEntity.GridData.Columns[i].ColumnName.ToLower() == g.GridColumnDefinds[j].DataIndex.ToLower())
                                                {
                                                    pageEntity.GridData.Columns[i].ColumnName = g.GridColumnDefinds[j].ColumnText;
                                                    break;
                                                }
                                            }
                                        }
                                    }
                                    #endregion
                                }
                                //数据获取
                                Workbook wb = DataTableExporter.WriteXLS(pageEntity.GridData, 0);
                                wb.Worksheets[0].Name = "参加活动人员信息";

                                string savePath = ConfigurationManager.AppSettings["FileURL"];
                                if (!Directory.Exists(savePath))
                                {
                                    Directory.CreateDirectory(savePath);
                                }
                                savePath = savePath + "/" + item.Title + DateTime.Now.ToString("yyyyMMdd") + ".xls";
                                wb.Save(savePath);//保存Excel文件

                                #region 邮件发送
                                FromSetting fs = new FromSetting();
                                fs.SMTPServer = ConfigurationManager.AppSettings["SmtpServer"];
                                fs.SendFrom   = ConfigurationManager.AppSettings["MailSendFrom"];
                                fs.UserName   = ConfigurationManager.AppSettings["MailUserName"];
                                fs.Password   = ConfigurationManager.AppSettings["MailUserPassword"];

                                string mailTo     = ConfigurationManager.AppSettings["MailTo"];
                                string isSendMail = ConfigurationManager.AppSettings["IsSendMailToCreator"];

                                //是否发送成功
                                bool result = false;

                                if (!string.IsNullOrEmpty(mailTo))
                                {
                                    result = Mail.SendMail(fs, mailTo, ConfigurationManager.AppSettings["MailTitle"], ConfigurationManager.AppSettings["Subject"], savePath.Split(','));
                                }

                                if (isSendMail == "1")
                                {
                                    if (!string.IsNullOrEmpty(item.Email))
                                    {
                                        if (DateTime.Now < DateTime.Parse(item.EndTime))
                                        {
                                            //等于0表示不发送邮件
                                            if (item.MailSendInterval == null || item.MailSendInterval == 0)
                                            {
                                                continue;
                                            }

                                            //日期差与间隔时间取余判断是否符合发送邮件日期
                                            int dateDiff = ((TimeSpan)(DateTime.Now.Date - item.LastUpdateTime.Value.Date)).Days;
                                            if (dateDiff % item.MailSendInterval != 0)
                                            {
                                                continue;
                                            }


                                            result = Mail.SendMail(fs, item.Email, ConfigurationManager.AppSettings["MailTitle"], ConfigurationManager.AppSettings["Subject"], savePath.Split(','));

                                            Loggers.Debug(new DebugLogInfo
                                            {
                                                Message = string.Format("{0} {1} (EventID:{3})报名人员信息通知邮件发送{2}", DateTime.Now.ToShortDateString(), DateTime.Now.TimeOfDay, result ? "成功" : "失败", item.EventID)
                                            });
                                        }
                                    }
                                }
                                #endregion
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    Loggers.Exception(new BasicUserInfo(), ex);
                }
                Thread.Sleep(new TimeSpan(0, 1, 0, 0));
            }
        }
예제 #24
0
        public override void Execute()
        {
            base.Execute();

            if (ValidateModule())
            {
                string exportFileName;
                exportFileName = (string)this["E02"];


                var gridView = PrintGrid.DefaultView as GridView;
                if (gridView != null)
                {
                    lnkFile.Visible = false;

                    foreach (var control in CommonControlByID.Values)
                    {
                        control.Enabled = false;
                    }

                    var columns = new List <string>();
                    var fields  = new List <ModuleFieldInfo>();
                    var headers = new List <string>();
                    foreach (GridColumn column in gridView.Columns)
                    {
                        var flagAddColumn = true;
                        if (column.Visible && column.VisibleIndex >= 0)
                        {
                            //TUDQ them
                            if (modExport == 1 & columnRemove != null)
                            {
                                for (var j = 0; j < columnRemove.Rows.Count; j++)
                                {
                                    if (columnRemove.Rows[j]["Value"].ToString() == column.FieldName)
                                    {
                                        flagAddColumn = false;
                                    }
                                }
                            }
                            if (flagAddColumn)
                            {
                                var field = (ModuleFieldInfo)column.Tag;
                                if (field != null)
                                {
                                    fields.Add(field);
                                    columns.Add(column.FieldName);
                                    headers.Add(column.ToolTip);
                                }
                            }
                        }
                        //if (column.Visible && column.VisibleIndex >= 0)
                        //{
                        //    var field = (ModuleFieldInfo)column.Tag;
                        //    if (field != null)
                        //    {
                        //        fields.Add(field);
                        //        columns.Add(column.FieldName);
                        //        headers.Add(column.Caption);
                        //    }
                        //}
                    }

                    if ((string)this["E01"] == CODES.EXPORT.EXPORTTYPE.XML || (string)this["E01"] == CODES.EXPORT.EXPORTTYPE.TXT)
                    {
                        CurrentThread = new WorkerThread(
                            delegate(WorkerThread thread)
                        {
                            LockUserAction();
                            ExportSuccess = false;
                            try
                            {
                                using (var ctrlSA = new SAController())
                                {
                                    DataContainer container;
                                    DataSet ds = new DataSet("main");
                                    DataTable tempTable;
                                    ctrlSA.FetchAllSearchResult(out container, ModuleInfo.ModuleID, ModuleInfo.SubModule, LastSearchResultKey, LastSearchTime, 0);

                                    tempTable = container.GetTable(
                                        FieldUtils.GetModuleFields(
                                            ModuleInfo.ModuleID,
                                            CODES.DEFMODFLD.FLDGROUP.SEARCH_COLUMN
                                            ));
                                    tempTable.TableName = "DATA_RECORD";
                                    ds.Tables.Add(tempTable);
                                    //ds.Tables.Add(table);
                                    if ((string)this["E01"] == CODES.EXPORT.EXPORTTYPE.XML)
                                    {
                                        ds.WriteXml((string)this["E02"]);
                                    }
                                    else
                                    {
                                        WriteFileText(ds.Tables[0], (string)this["E02"]);
                                    }


                                    CurrentThread.JobName = string.Format(Language.SaveToFileStatus, exportFileName);
                                    thread.ExecuteUpdateGUI(true);
                                }
                                thread.JobName         = Language.CompletedStatus;
                                thread.PercentComplete = 100;
                                ExportSuccess          = true;
                            }
                            catch (Exception ex)
                            {
                                ShowError(ex);
                            }
                            finally
                            {
                                UnLockUserAction();
                            }
                            thread.ExecuteUpdateGUI(true);
                        }, this);

                        btnExport.Enabled              = false;
                        CurrentThread.ProcessComplete += thread_ProcessComplete;
                        CurrentThread.DoUpdateGUI     += thread_DoUpdateGUI;
                        CurrentThread.Start();
                    }
                    else
                    {
                        var exporter = new DataTableExporter(columns.ToArray(), headers.ToArray(), ModuleInfo, fields.ToArray());
                        CurrentThread = new WorkerThread(
                            delegate(WorkerThread thread)
                        {
                            LockUserAction();
                            ExportSuccess = false;

                            FileFormatType exportType;
                            int maxRowCount;

                            switch ((string)this["E01"])
                            {
                            case CODES.EXPORT.EXPORTTYPE.EXCEL_XLSX:
                                exportType  = FileFormatType.Excel2007Xlsx;
                                maxRowCount = CONSTANTS.MAX_ROWS_IN_EXPORT_XLSX;
                                break;

                            default:
                                exportType  = FileFormatType.Excel2003;
                                maxRowCount = CONSTANTS.MAX_ROWS_IN_EXPORT_XLS;
                                break;
                            }

                            try
                            {
                                using (var ctrlSA = new SAController())
                                {
                                    DataContainer container;
                                    DataTable tempTable;
                                    var book = exporter.CreateWorkBook();

                                    var fromRow  = 0;
                                    var rowCount = 0;

                                    ResultTable = null;
                                    do
                                    {
                                        ctrlSA.FetchAllSearchResult(out container, ModuleInfo.ModuleID, ModuleInfo.SubModule, LastSearchResultKey, LastSearchTime, fromRow);
                                        tempTable = container.GetTable(
                                            FieldUtils.GetModuleFields(
                                                ModuleInfo.ModuleID,
                                                CODES.DEFMODFLD.FLDGROUP.SEARCH_COLUMN
                                                ));

                                        if (tempTable.Rows.Count > 0)
                                        {
                                            fromRow  = fromRow + tempTable.Rows.Count;
                                            rowCount = rowCount + tempTable.Rows.Count;

                                            if (ResultTable == null)
                                            {
                                                ResultTable = tempTable;
                                            }
                                            else
                                            {
                                                foreach (DataRow row in tempTable.Rows)
                                                {
                                                    ResultTable.ImportRow(row);
                                                }

                                                // TODO: CHANGE NAME OF THREAD
                                                thread.JobName = string.Format("{0} rows buffered", rowCount);
                                                thread.ExecuteUpdateGUI();
                                            }
                                        }

                                        if (ResultTable != null && ResultTable.Rows.Count > maxRowCount)
                                        {
                                            ExportDataTable(exporter, book, thread);
                                            ClearExportedRows();
                                        }
                                    }while (tempTable.Rows.Count > 0);

                                    if (ResultTable != null && ResultTable.Rows.Count > 0)
                                    {
                                        ExportDataTable(exporter, book, thread);
                                    }
                                    else
                                    {
                                        book.Worksheets.Add("No result");
                                    }

                                    CurrentThread.JobName = string.Format(Language.SaveToFileStatus, exportFileName);
                                    thread.ExecuteUpdateGUI(true);
                                    book.Save(exportFileName, exportType);
                                }

                                thread.JobName         = Language.CompletedStatus;
                                thread.PercentComplete = 100;
                                ExportSuccess          = true;
                            }
                            catch (Exception ex)
                            {
                                thread.PercentComplete = 100;
                                thread.JobName         = Language.ErrorStatus;
                                ShowError(ex);
                            }
                            finally
                            {
                                UnLockUserAction();
                            }

                            thread.ExecuteUpdateGUI(true);
                        }, this);

                        btnExport.Enabled              = false;
                        CurrentThread.ProcessComplete += thread_ProcessComplete;
                        CurrentThread.DoUpdateGUI     += thread_DoUpdateGUI;
                        CurrentThread.Start();
                    }
                }
            }
        }
예제 #25
0
        void LoadGrid()
        {
            if (string.IsNullOrEmpty(file))
            {
                var openFileDialog = UtilDisplay.LoadOpenFileDialog;
                openFileDialog.Multiselect = false;
                openFileDialog.Filter      = "CSV Files (*.csv)|*.csv|XLS Files (*.xls)|*.xls|XLSX Files (*.xlsx)|*.xlsx|TXT Files (*.txt)|*.txt |All files (*.*)|*.*";
                bool?userClickedOK = openFileDialog.ShowDialog();
                if (userClickedOK == true)
                {
                    file = openFileDialog.FileName;
                }
                if (string.IsNullOrEmpty(file))
                {
                    return;
                }
            }
            string fileExtension = System.IO.Path.GetExtension(file);

            try
            {
                bool      hasType;
                DataTable DataTable;
                if (fileExtension == ".csv")
                {
                    hasType         = false;
                    updateDelimiter = true;
                    DataTable       = FromCsv(file);
                }
                else if (fileExtension == ".xls" || fileExtension == ".xlsx")
                {
                    hasType = true;
                    IWorkbook workBook = importSpreadSheet.Document;
                    workBook.LoadDocument(file);
                    DevExpress.Spreadsheet.Worksheet worksheet = importSpreadSheet.Document.Worksheets[0];
                    var range     = worksheet.GetUsedRange();
                    var dataTable = worksheet.CreateDataTable(range, true);
                    for (int col = 0; col < range.ColumnCount; col++)
                    {
                        CellValueType cellType = range[0, col].Value.Type;
                        for (int r = 1; r < range.RowCount; r++)
                        {
                            if (cellType != range[r, col].Value.Type)
                            {
                                dataTable.Columns[col].DataType = typeof(string);
                                break;
                            }
                        }
                    }
                    DataTableExporter exporter = worksheet.CreateDataTableExporter(range, dataTable, true);
                    exporter.Export();
                    DataTable = exporter.DataTable;
                }
                else if (fileExtension == ".txt")
                {
                    hasType = false;
                    DataSet theDataSet = new DataSet();
                    theDataSet.ReadXml(file);
                    DataTable = theDataSet.Tables[0];
                }
                else
                {
                    file = string.Empty;
                    return;
                }

                dgBankStmt.ItemsSource        = DataTable;
                customDataColumnSource        = CreateCustomDataColumn(DataTable, hasType).ToList();
                dgBankStmt.ColumnsSource      = customDataColumnSource;
                listBoxProperties.ItemsSource = customDataColumnSource;
            }
            catch (Exception ex)
            {
                UnicontaMessageBox.Show(ex);
            }
        }
예제 #26
0
        private void medStufButton_Click(object sender, EventArgs e)
        {
            int  changeCostCounter  = 0;
            int  changeNameCounter  = 0;
            int  totalChangeCounter = 0;
            int  newCodeCounter     = 0;
            int  delCodeCounter     = 0;
            int  excelRowCounter;
            bool changeCost = false;

            medStufButton.Enabled = false;
            dtDb.Clear();
            excelDataTable.Clear();
            changesTable.Clear();
            #region File choise
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.Filter = "XLSX-files|*.xlsx";
            openFileDialog.ShowDialog();
            #endregion
            Workbook wbook = new Workbook();
            if (openFileDialog.FileName == "")
            {
                MessageBox.Show("Выберите файл", "Ошибка выбора файла", MessageBoxButtons.OK, MessageBoxIcon.Error);
                medStufButton.Enabled = true;
            }
            else
            {
                fileName = System.IO.Path.GetFileNameWithoutExtension(openFileDialog.FileName);
                wbook.LoadDocument(openFileDialog.FileName);
                Worksheet worksheet =
                    wbook.Worksheets[0];
                excelRowCounter = 0;
                while (!worksheet.Cells[excelRowCounter, 1].Value.IsEmpty)
                {
                    excelRowCounter++;
                }
                try
                {
                    var range = worksheet.Range[$"A1:E{excelRowCounter}"].CurrentRegion;
                    excelDataTable = worksheet.CreateDataTable(range, true);
                    if (excelDataTable.Columns.Count == 5)
                    {
                        if (!excelDataTable.Columns[0].ColumnName.Equals("№ п.п.") ||
                            !excelDataTable.Columns[1].ColumnName.Equals("Код мед.изделия") ||
                            !excelDataTable.Columns[2].ColumnName.Equals("Наименование") ||
                            !excelDataTable.Columns[3].ColumnName.StartsWith("Цена за мед. изделие") ||
                            !excelDataTable.Columns[4].ColumnName.Equals("Действие"))//
                        {
                            throw new Exception("Структура файла отличается от ожидаемой");
                        }
                    }
                    else
                    {
                        throw new Exception("Структура файла отличается от ожидаемой");
                    }
                    excelDataTable.Columns[3].DataType = System.Type.GetType("System.Double");
                    DataTableExporter exporter = worksheet.CreateDataTableExporter(range, excelDataTable, true);
                    exporter.Options.ConvertEmptyCells = true;
                    exporter.Export();

/*                    try
 *                  {
 *                      excelDataTable.PrimaryKey = new DataColumn[] { excelDataTable.Columns[1] };
 *                  }
 *                  catch
 *                  {
 *
 *                      throw new Exception("Коды в файле не уникальны");
 *                  }
 */                 //для обесспечения уникальноти кодов в экселе
                    excelDataTable.Columns[0].ColumnName    = "numberrrr";
                    excelDataTable.Columns[1].ColumnName    = "code";
                    excelDataTable.Columns[2].ColumnName    = "name";
                    excelDataTable.Columns[3].ColumnName    = "cost";
                    excelDataTable.Columns["cost"].DataType = System.Type.GetType("System.Double");

                    excelDataTable.Columns[4].ColumnName = "action";
                    #region Connection settings checking
                    if (ini.KeyExists("Source", "DB_Connection") && ini.KeyExists("Catalog", "DB_Connection"))
                    {
                        connSource  = ini.ReadINI("DB_Connection", "Source");
                        connCatalog = ini.ReadINI("DB_Connection", "Catalog");
                        try
                        {
                            string connStr = $"Data Source={connSource};Initial Catalog={connCatalog};Integrated Security=True";
                            using (SqlConnection connection = new SqlConnection(connStr))
                            {
                                connection.Open();
                                SqlDataAdapter adapter = new SqlDataAdapter();
                                //SqlDataAdapter adapter2 = new SqlDataAdapter();
                                adapter.SelectCommand = new SqlCommand("SELECT * FROM dbo.med_stuf", connection);
                                adapter.Fill(dtDb);
                                //                            dtDb.Columns["cost"].DataType = System.Type.GetType("System.Single");
                                adapter.SelectCommand = new SqlCommand("SELECT * FROM dbo.med_stuf_temp", connection);
                                adapter.Fill(changesTable);
                                changesTable.Clear();
                                //if (changesTable.Columns.Count < 10)
                                //{
                                //    changesTable.Columns.Add("chng_knd");
                                //    changesTable.Columns.Add("accept");
                                //}
                                //gridControl1.DataSource = dtDb;
                                #region Filling datatable with changes
                                dtDb.PrimaryKey         = new DataColumn[] { dtDb.Columns["code"] };
                                changesTable.PrimaryKey = new DataColumn[] { changesTable.Columns["code"] };
                                foreach (DataRow newDataRow in excelDataTable.Rows)
                                {
                                    if (!newDataRow["code"].Equals(DBNull.Value))
                                    {
                                        object oldPrice = DBNull.Value;
                                        object oldName  = DBNull.Value;
                                        object newPrice = DBNull.Value;
                                        object newName  = DBNull.Value;

                                        if (dtDb.Rows.Contains(newDataRow["code"]))
                                        {
                                            foreach (DataRow dbRow in dtDb.Select($"code={newDataRow["code"]}"))
                                            {
                                                object oldPriceNe = dbRow["cost"];
                                                object oldNameNe  = dbRow["name"];
                                                object newPriceNe = newDataRow["cost"];
                                                object newNameNe  = newDataRow["name"];

                                                if (!newDataRow["name"].Equals(DBNull.Value))
                                                {
                                                    if (!dbRow["cost"].Equals(newDataRow["cost"]))
                                                    {
                                                        oldPrice      = dbRow["cost"];
                                                        dbRow["cost"] = newDataRow["cost"];
                                                        newPrice      = newDataRow["cost"];
                                                        changeCostCounter++;
                                                        totalChangeCounter++;
                                                        changeCost = !changeCost;
                                                    }
                                                    //else
                                                    //{
                                                    //    oldPrice = newPrice = dbRow["cost"];
                                                    //}
                                                    if (!dbRow["name"].Equals(newDataRow["name"]))
                                                    {
                                                        oldName       = dbRow["name"];
                                                        dbRow["name"] = newDataRow["name"];
                                                        newName       = newDataRow["name"];
                                                        if (!changeCost)
                                                        {
                                                            totalChangeCounter++;
                                                        }
                                                        changeNameCounter++;
                                                    }
                                                    if (!oldName.Equals(newName) || !oldPrice.Equals(newPrice))
                                                    {
                                                        changeCost = !changeCost;
                                                        changesTable.Rows.Add(new Object[] { DBNull.Value,
                                                                                             newDataRow["code"],
                                                                                             oldPrice,
                                                                                             newPrice,
                                                                                             oldName,
                                                                                             newName,
                                                                                             fileName,
                                                                                             DBNull.Value,
                                                                                             DBNull.Value,
                                                                                             "изменение",
                                                                                             true,
                                                                                             oldPriceNe,
                                                                                             newPriceNe,
                                                                                             oldNameNe,
                                                                                             newNameNe });
                                                    }
                                                    if (!newDataRow["action"].Equals(DBNull.Value))
                                                    {
                                                        delCodeCounter++;
                                                        changesTable.Rows.Add(new Object[] { DBNull.Value,
                                                                                             newDataRow["code"],
                                                                                             dbRow["cost"],
                                                                                             newPrice,
                                                                                             dbRow["name"],
                                                                                             newName,
                                                                                             fileName,
                                                                                             DBNull.Value,
                                                                                             DBNull.Value,
                                                                                             "удаление",
                                                                                             true,
                                                                                             oldPriceNe,
                                                                                             newPriceNe,
                                                                                             oldNameNe,
                                                                                             newNameNe });
                                                    }
                                                }//if name!=0
                                                else
                                                {
                                                    if (!newDataRow["action"].Equals(DBNull.Value))
                                                    {
                                                        delCodeCounter++;
                                                        changesTable.Rows.Add(new Object[] { DBNull.Value,
                                                                                             newDataRow["code"],
                                                                                             dbRow["cost"],
                                                                                             newPrice,
                                                                                             dbRow["name"],
                                                                                             newName,
                                                                                             fileName,
                                                                                             DBNull.Value,
                                                                                             DBNull.Value,
                                                                                             "удаление",
                                                                                             true,
                                                                                             oldPriceNe,
                                                                                             newPriceNe,
                                                                                             oldNameNe,
                                                                                             newNameNe });
                                                    }
                                                    else
                                                    {
                                                        MessageBox.Show($"Наименования услуг в файле \"{fileName}\" должны быть заполнены", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                        changesTable.Clear();
                                                    }
                                                } //else name!=0
                                            }     //foreach dbRow
                                        }         //contains
                                        else
                                        {
                                            if (!changesTable.Rows.Contains(newDataRow["code"]))
                                            {
                                                newPrice = newDataRow["cost"];
                                                newName  = newDataRow["name"];
                                                changesTable.Rows.Add(new Object[] { DBNull.Value,
                                                                                     newDataRow["code"],
                                                                                     oldPrice,
                                                                                     newPrice,
                                                                                     oldName,
                                                                                     newName,
                                                                                     fileName,
                                                                                     DBNull.Value,
                                                                                     DBNull.Value,
                                                                                     "добавление",
                                                                                     true,
                                                                                     DBNull.Value,
                                                                                     newPrice,
                                                                                     DBNull.Value,
                                                                                     newName });
                                                newCodeCounter++;
                                            }
                                        } //else contains
                                    }     //if code not null
                                    else
                                    {
                                        MessageBox.Show($"Коды услуг в файле {openFileDialog.FileName} должны быть заполнены", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                        changesTable.Clear();
                                    }
                                }
                                #endregion
                                if (changesTable.Rows.Count > 0)
                                {
                                    SqlCommand command = connection.CreateCommand();
                                    command.CommandText = "DELETE dbo.med_stuf_temp";
                                    command.ExecuteNonQuery();
                                    adapter.SelectCommand = new SqlCommand("SELECT * FROM dbo.med_stuf_temp", connection);
                                    SqlCommandBuilder commandBuilder = new SqlCommandBuilder(adapter);
                                    adapter.Update(changesTable);
                                    changesTable.Clear();
                                    adapter.Fill(changesTable);
                                    gridControl2.DataSource = changesTable;
                                    //dataGridResult//.Columns[6].Visibility = Visibility.Hidden;
                                    //gridView2.Columns[10].UnboundType=DataGridViewCheckBoxColumn
                                    //dataGridResult.Columns[7].Visibility = Visibility.Collapsed;
                                    //sqlDataSource1.Fill();
                                    gridControl2.Visible = true;
                                    //buttonDBUpdate.IsEnabled = true;
                                    //buttonCancel.IsEnabled = true;
                                    MessageBox.Show($@"Записей в файле: {excelRowCounter - 1}
Из них с изменениями: {totalChangeCounter}
Изменений цены: {changeCostCounter}
Изменений наименования: {changeNameCounter}
Новых записей: {newCodeCounter}
Записей на удаление: {delCodeCounter}", "Итого:", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                }
                                else
                                {
                                    MessageBox.Show($"В файле \"{fileName}\" нет изменений", "Обновление", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                    medStufButton.Enabled = true;
                                }
                            }//connection
                        }
                        catch (SqlException sqlEx)
                        {
                            MessageBox.Show($"Проверьте параметры подключения к базе данных {sqlEx.Message}");
                            medStufButton.Enabled = true;
                        }
                    }
                    else
                    {
                        MessageBox.Show("Проверьте наличие файла конфигурации подключения к БД", "Ошибка подключения к БД", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        medStufButton.Enabled = true;
                    }
                    #endregion
                }
                catch (InvalidOperationException inOpEx)
                {
                    MessageBox.Show($@"Ошибка структуры файла.
{inOpEx.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    medStufButton.Enabled = true;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }//else от наличия файла в openFileDialogе
            updateButton.Enabled = true;
            cansButton.Enabled   = true;
        }//medStufButton
예제 #27
0
        private void MedStuffUpdateButton_Click(object sender, RoutedEventArgs e)
        {
            medStuffUpdateButton.IsEnabled = false;
            dtDb.Clear();
            excelDataTable.Clear();
            changesTable.Clear();

            #region File choise
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.Filter = "XLSX-files|*.xlsx";
            openFileDialog.ShowDialog();
            #endregion

            #region Range search
            Workbook wbook = new Workbook();
            if (openFileDialog.FileName == "")
            {
                System.Windows.MessageBox.Show("Выберите файл", "", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
            else
            {
                fileName = Path.GetFileNameWithoutExtension(openFileDialog.FileName);
                wbook.LoadDocument(openFileDialog.FileName);
                DevExpress.Spreadsheet.Worksheet worksheet =
                    wbook.Worksheets[0];
                int lastRow = 0;
                while (!worksheet.Cells[lastRow, 1].Value.IsEmpty)
                {
                    lastRow++;
                }
                //var range = worksheet.Tables[0].Range;
                var range = worksheet.Range[$"A1:D{lastRow}"].CurrentRegion;
                #endregion

                #region Excel datatable definition
                //excelDataTable = worksheet..CreateDataTable(range, true);
                ////excelDataTable.Columns[1].DataType = System.Type.GetType("System.String");
                //excelDataTable.Columns[0].ColumnName = "numberrrr";
                //excelDataTable.Columns[1].ColumnName = "code";
                //excelDataTable.Columns[2].ColumnName = "name";
                //excelDataTable.Columns[3].ColumnName = "cost";
                #endregion

                DataTableExporter exporter = worksheet.CreateDataTableExporter(range, excelDataTable, true);
                //exporter.CellValueConversionError += exporter_CellValueConversionError;
                //MyConverter myconverter = new MyConverter();
                //exporter.Options.CustomConverters.Add("As Of", myconverter);
                //// Set the export value for empty cell.
                //myconverter.EmptyCellValue = "N/A";
                exporter.Options.ConvertEmptyCells = true;
                exporter.Options.DefaultCellValueToColumnTypeConverter.SkipErrorValues = false;
                exporter.Export();
                //grid.ItemsSource = excelDataTable;
                //grid.Visibility = Visibility.Visible;

                //DataTable dtDb = new DataTable();
                //DataTable changesTable = new DataTable();

                #region Datatable with changes definition
                //if (changesTable.Columns.Count < 1)
                //{
                //    changesTable.Columns.Add("code");
                //    changesTable.Columns.Add("old_cost");
                //    changesTable.Columns.Add("new_cost");
                //    changesTable.Columns.Add("old_name");
                //    changesTable.Columns.Add("new_name");
                //    changesTable.Columns.Add("file_n");
                //    changesTable.Columns.Add("difference");
                //}
                #endregion

                //string connStr = @"Data Source=DESKTOP-N6R6KEU\SQLEXPRESS;Initial Catalog=STD_DB_DICT_HIVE;Integrated Security=True";

                #region Connection to DB
                if (INI.KeyExists("Source", "DB_Connection") && INI.KeyExists("Catalog", "DB_Connection"))
                {
                    try
                    {
                        string connStr = $"Data Source={INI.ReadINI("DB_Connection", "Source")};Initial Catalog={INI.ReadINI("DB_Connection", "Catalog")};Integrated Security=True";
                        using (SqlConnection connection = new SqlConnection(connStr))
                        {
                            SqlDataAdapter adapter = new SqlDataAdapter();
                            //SqlDataAdapter adapter2 = new SqlDataAdapter();
                            adapter.SelectCommand = new SqlCommand("SELECT * FROM med_stuf", connection);
                            adapter.Fill(dtDb);
                            adapter.SelectCommand = new SqlCommand("SELECT * FROM log.med_stuf", connection);
                            adapter.Fill(changesTable);
                            changesTable.Clear();
                            if (changesTable.Columns.Count < 9)
                            {
                                changesTable.Columns.Add("difference");
                            }
                            //gridControl1.DataSource = dtDb;
                            #region Filling datatable with changes
                            foreach (DataRow newDataRow in excelDataTable.Rows)
                            {
                                if (!newDataRow["code"].Equals(DBNull.Value))
                                {
                                    if (!newDataRow["name"].Equals(DBNull.Value))
                                    {
                                        foreach (DataRow dbRow in dtDb.Select($"code={newDataRow["code"]}"))
                                        {
                                            object oldPrice = DBNull.Value;
                                            object oldName  = DBNull.Value;
                                            object newPrice = DBNull.Value;
                                            object newName  = DBNull.Value;

                                            if (!dbRow["cost"].Equals(newDataRow["cost"]))
                                            {
                                                oldPrice      = dbRow["cost"];
                                                dbRow["cost"] = newDataRow["cost"];
                                                newPrice      = newDataRow["cost"];
                                            }
                                            if (!dbRow["name"].Equals(newDataRow["name"]))
                                            {
                                                oldName       = dbRow["name"];
                                                dbRow["name"] = newDataRow["name"];
                                                newName       = newDataRow["name"];
                                            }
                                            if (!oldName.Equals(newName) || !oldPrice.Equals(newPrice))
                                            {
                                                changesTable.Rows.Add(new Object[] { newDataRow["code"],
                                                                                     oldPrice,
                                                                                     newPrice,
                                                                                     oldName,
                                                                                     newName,
                                                                                     fileName,
                                                                                     DBNull.Value,
                                                                                     DBNull.Value,
                                                                                     Convert.ToDouble(newPrice) - Convert.ToDouble(oldPrice) });
                                            }
                                        }
                                    }
                                    else
                                    {
                                        System.Windows.MessageBox.Show($"Наименования услуг в файле {openFileDialog.FileName} должны быть заполнены", "Ошибка!", MessageBoxButton.OK, MessageBoxImage.Error);
                                        changesTable.Clear();
                                    }
                                }
                                else
                                {
                                    System.Windows.MessageBox.Show($"Коды услуг в файле {openFileDialog.FileName} должны быть заполнены", "Ошибка!", MessageBoxButton.OK, MessageBoxImage.Error);
                                    changesTable.Clear();
                                }
                            }
                            #endregion
                            if (changesTable.Rows.Count > 0)
                            {
                                grid.ItemsSource       = changesTable;
                                grid.Visibility        = Visibility.Visible;
                                OkButton.IsEnabled     = true;
                                CancelButton.IsEnabled = true;
                            }
                            else
                            {
                                System.Windows.MessageBox.Show($"В файле {openFileDialog.FileName} нет изменений", "Обновление", MessageBoxButton.OK, MessageBoxImage.Information);
                                medStuffUpdateButton.IsEnabled = true;
                            }
                        }//connection
                    }
                    catch (Exception)
                    {
                        System.Windows.MessageBox.Show("Проверьте параметры подключения к базе данных");
                        medStuffUpdateButton.IsEnabled = true;
                    }
                }
                else
                {
                    System.Windows.MessageBox.Show("Проверьте наличие файла конфигурации подключкния к БД", "Ошибка подключения к БД", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }

            #endregion
        }//mainButtonClick
예제 #28
0
        public virtual void Import()
        {
            Control targetControl = FocusedGrid();

            if (targetControl == null)
            {
                return;
            }
            if (targetControl.GetType().Equals(typeof(GridControl)))
            {
                try
                {
                    GridControl    gd             = (GridControl)targetControl;
                    GridView       abv            = (GridView)gd.MainView;
                    DataTable      sdt            = (DataTable)gd.DataSource;
                    OpenFileDialog openFileDialog = new OpenFileDialog();
                    openFileDialog.Filter = "Excel|*.xls;*.xlsx";
                    if (openFileDialog.ShowDialog() != DialogResult.Cancel)
                    {
                        SharedFunc.ShowProcess(this, 0, 5);
                        SpreadsheetControl spreadsheetControl = new SpreadsheetControl();
                        spreadsheetControl.LoadDocument(openFileDialog.FileName);
                        SharedFunc.ShowProcess(1);
                        Worksheet      worksheet      = spreadsheetControl.Document.Worksheets.ActiveWorksheet;
                        CellCollection cellCollection = worksheet.Cells;
                        DataTable      idt            = worksheet.CreateDataTable(cellCollection.CurrentRegion, true);
                        //务必添加引用DevExpress.Docs.v16.2.dll
                        DataTableExporter exporter = worksheet.CreateDataTableExporter(cellCollection.CurrentRegion, idt, true);
                        exporter.Export();
                        SharedFunc.ShowProcess(1);
                        foreach (DataColumn dc in idt.Columns)
                        {
                            foreach (GridColumn bgc in abv.Columns)
                            {
                                if (bgc.Caption.Trim().Equals(dc.ColumnName.Trim()))
                                {
                                    dc.ColumnName = bgc.FieldName;
                                    break;
                                }
                            }
                        }
                        //克隆结构 变更数据类型
                        DataTable ndt = idt.Clone();
                        foreach (DataColumn dc in ndt.Columns)
                        {
                            foreach (DataColumn bgc in sdt.Columns)
                            {
                                if (bgc.Caption.Trim().Equals(dc.ColumnName.Trim()))
                                {
                                    dc.ColumnName = bgc.ColumnName;
                                    dc.DataType   = bgc.DataType;
                                    break;
                                }
                            }
                        }
                        foreach (DataRow dr in idt.Rows)
                        {
                            DataRow ndr = ndt.NewRow();
                            foreach (DataColumn dc in idt.Columns)
                            {
                                ndr[dc.ColumnName] = dr[dc.ColumnName];
                            }
                            ndt.Rows.Add(ndr);
                        }
                        SharedFunc.ShowProcess(1);
                        sdt.Merge(ndt, true);
                        SharedFunc.ShowProcess(5);
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    SharedFunc.ShowProcess(int.MaxValue);
                }
            }
        }
예제 #29
0
        private string ExportCard(string pRequest)
        {
            var loggingSessionInfo = new SessionManager().CurrentUserLoginInfo;
            var cardDepositBLL     = new CardDepositBLL(loggingSessionInfo);

            var rd = new GetCardRD();
            var rp = pRequest.DeserializeJSONTo <APIRequest <GetCardRP> >();

            rp.Parameters.Validate();

            DataSet ds = new DataSet();

            if (rp.Parameters.CardIDs != null && rp.Parameters.CardIDs.Length > 0)
            {
                ds = cardDepositBLL.GetCardByIDs(rp);
            }
            else if (!string.IsNullOrEmpty(rp.Parameters.BatchID))
            {
                ds = cardDepositBLL.GetCardByBatchID(rp);
            }
            else
            {
                rp.Parameters.PageSize  = 1000000;
                rp.Parameters.PageIndex = 0;
                ds = cardDepositBLL.PagedSearch(rp.Parameters, loggingSessionInfo.ClientID);
            }

            if (ds.Tables.Count > 0)
            {
                DataTable dt = new DataTable();
                if (ds.Tables[0] != null)
                {
                    ds.Tables[0].Columns.Add(new DataColumn()
                    {
                        ColumnName = "CardPasswordDecrypt", DataType = typeof(string)
                    });

                    #region 解密密码
                    foreach (DataRow item in ds.Tables[0].Rows)
                    {
                        item["CardPasswordDecrypt"] = System.Text.Encoding.UTF8.GetString(cardDepositBLL.DecryptCardPassword((byte[])item["CardPassword"]));
                    }
                    #endregion

                    Dictionary <string, string> exportFields = new Dictionary <string, string>();
                    exportFields.Add("ChannelTitle", "渠道");
                    exportFields.Add("CardNo", "卡号");
                    exportFields.Add("CardPasswordDecrypt", "密码");
                    exportFields.Add("Amount", "金额");
                    exportFields.Add("Bonus", "赠送金额");

                    #region 替换标题信息
                    DataColumn dc = new DataColumn();
                    dt = ds.Tables[0].DefaultView.ToTable(false, exportFields.Keys.ToArray());

                    foreach (DataColumn c in dt.Columns)
                    {
                        string title;
                        exportFields.TryGetValue(c.ColumnName, out title);
                        c.ColumnName = title;
                    }
                    #endregion
                }

                //数据获取
                Workbook wb       = DataTableExporter.WriteXLS(dt, 0);
                string   savePath = HttpContext.Current.Server.MapPath(@"~/File/Excel");
                if (!System.IO.Directory.Exists(savePath))
                {
                    System.IO.Directory.CreateDirectory(savePath);
                }
                savePath = savePath + "\\卡数据导出" + DateTime.Now.ToFileTime() + ".xls";
                wb.Save(savePath);//保存Excel文件
                new ExcelCommon().OutPutExcel(HttpContext.Current, savePath);
                HttpContext.Current.Response.End();
            }

            var rsp = new SuccessResponse <IAPIResponseData>(rd);

            return(rsp.ToJSON());
        }