導出Excel時不導出隱藏的列方法,以及重新設置表頭名稱


 #region 事件--導出

        private void xButtonExport_Click(object sender, EventArgs e)
        {

            //導出前驗證
            if (InventoryInquiresDataGrid.Rows.Count==0)
            {
                MessageBox.Show("沒有要導出的數據!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }


            GetSerachInfo();     //獲取查詢條件 searchObject對象
            StateBar sb = new StateBar();    //調用導出運行狀態欄
            sb.Show("系統正在處理,請稍等...");
            try
            {
                ResultPage_StoreInventoryInquires rpo = null;
                IStore_InventoryInquires Proxy = SPF.Create<IStore_InventoryInquires>("Store_InventoryInquires_SRV");
                rpo = Proxy.SelectStore_InventoryExport(searchObject);
                sb.Close();

           DataTable eData = HidColumnExport(rpo.DataSetData.Tables["InventoryInquiresView"], InventoryInquiresDataGrid);  //去掉不用導出的列
                eData = UpdateExportTableColumnName(eData);  // 修改導出擴展屬性的列名稱
                //導出
                bool export = false;
                SaveFileDialog sfd = new SaveFileDialog();
                sfd.OverwritePrompt = false;
                sfd.Filter = "excel文件|*.xls";
                sfd.FileName = "庫存導出-" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".xls";
                if (sfd.ShowDialog() == DialogResult.OK)
                {
                    export = new ImportExportToExcel().ExportToExcel(eData, sfd.FileName,"Export_InventoryInquires");
                }
                if (export)
                {
                    sb.Close();
                    MessageBox.Show("導出成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
            }
            catch
            {
                sb.Close();
                MessageBox.Show("查詢失敗!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
        }
        #endregion

 

        #region 方法--隱藏不用導出的列
        public DataTable HidColumnExport( DataTable exportTable,DataGridView dv)
        {

            #region
            for (int i = 0; i < exportTable.Columns.Count; i++)
            {
                bool flag = false;
                for (int j = 0; j < dv.ColumnCount; j++)
                 {
                     if (dv.Columns[j].Visible && (exportTable.Columns[i].ColumnName == dv.Columns[j].DataPropertyName))
                     {
                         //說明存在該列
                         flag = true;
                         break;
                     }
                 }
                //列不存在就刪除
                if(!flag)
                {
                    exportTable.Columns.Remove(exportTable.Columns[i]);
                    i--;
                }
            }
            #endregion
            return exportTable;


        }


        #endregion

 

 

        #region 修改導出擴展屬性的列名稱
        public DataTable UpdateExportTableColumnName(DataTable exportTable)
        {
            List<Set_GoodsPropertyInfoObject> list = GetPropertyInfoByGoodsId(str_CompanyID);
            if (list != null)
            {
                foreach (Set_GoodsPropertyInfoObject setGoodsPropertyInfoObject in list)
                {
                    foreach (DataColumn goodsPropertyInfoObject in exportTable.Columns)
                    {
                        if("PropertyInfo"+setGoodsPropertyInfoObject.Num==goodsPropertyInfoObject.ColumnName)
                        {
                            goodsPropertyInfoObject.Caption=setGoodsPropertyInfoObject.PropertyName;
                        }
                    }
                }
            }

            return exportTable;
        }

        #endregion


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM