Пример #1
0
        /// <summary>
        /// 写模板
        /// </summary>
        /// <returns></returns>
        public MyExcel writeTemplate()
        {
            path = System.Windows.Forms.Application.StartupPath + "\\Template\\成衣报价.xls";
            V_New_Excel        v_New_Excel = new V_New_Excel(path);
            Worksheet          wS          = v_New_Excel.WS;
            Usual_Excel_Helper uEHelper    = new Usual_Excel_Helper(wS);

            uEHelper.setSpecificCellValue("A1", "请在此填写成品名称", 18);
            uEHelper.setSpecificCellValue("A2", "序号", 16);
            uEHelper.setSpecificCellValue("B2", "工序", 16);
            uEHelper.setSpecificCellValue("F2", "序号", 16);
            uEHelper.setSpecificCellValue("G2", "工序", 16);
            uEHelper.merge("A1", "I1");
            //设置列宽
            uEHelper.setColumnWidth("A", 5.5M);
            uEHelper.setColumnWidth("B", 32.75M);
            uEHelper.setColumnWidth("C", 4.15M);
            uEHelper.setColumnWidth("D", 5.38M);
            uEHelper.setColumnWidth("E", 0.15M);
            uEHelper.setColumnWidth("F", 5.5M);
            uEHelper.setColumnWidth("G", 32.75M);
            uEHelper.setColumnWidth("H", 4.15M);
            uEHelper.setColumnWidth("I", 5.38M);

            v_New_Excel.saveWithoutAutoFit();
            v_New_Excel.closeTheApp();
            return(new MyExcel(path));
        }
        /// <summary>
        /// 导出到Excel
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnExport_Click(object sender, EventArgs e)
        {
            OracleHelper oH = OracleHelper.getBaseDao();

            if (string.IsNullOrEmpty(cbPN.Text.Trim()))
            {
                return;
            }
            if (CmdHelper.ifExistsTheProcessByName("EXCEL"))
            {
                return;
            }
            //获取该成品对应的工序。
            System.Data.DataTable dt       = null;
            OracleParameter       paramPN  = new OracleParameter("v_PN", OracleDbType.NVarchar2, 20);
            OracleParameter       paramCur = new OracleParameter("retureCur", OracleDbType.RefCursor);

            paramPN.Direction  = ParameterDirection.Input;
            paramCur.Direction = ParameterDirection.ReturnValue;
            paramPN.Value      = cbPN.Text.Trim();
            OracleParameter[] parameters = new OracleParameter[2] {
                paramCur, paramPN
            };
            string procName = "Show_Products_Cost.get_P_C_Info_To_Piecework";

            dt        = oH.getDT(procName, parameters);
            _fileName = cbPN.Text.Trim() + ".xls";
            DirectoryHelper.createDirecotry(_defaultDir);
            xlsFilePath = _defaultDir + _fileName;
            //获取一个Excel
            V_New_Excel        v_Excel  = new V_New_Excel(xlsFilePath);
            Worksheet          wS       = v_Excel.WS;
            Usual_Excel_Helper uEHelper = new Usual_Excel_Helper(wS);

            uEHelper.setSpecificCellValue(1, 1, cbPN.Text.Trim() + "报工单", 11, true);
            //写序号标题
            uEHelper.setSpecificCellValue(2, 3, "姓名");
            uEHelper.setSpecificCellValue(3, 1, "序号");
            uEHelper.setSpecificCellValue(3, 2, "部位");
            uEHelper.setSpecificCellValue(3, 3, "工序");
            //姓名占据两列
            //uEHelper.merge("C2", "D2");
            //uEHelper.merge("C3","D3");
            //Range range = wS.Range[wS.Cells[2, 3], wS.Cells[2, 4]];
            //uEHelper.textAlighRight(range);
            //工序名称,单据时间靠右
            //range = wS.Range[wS.Cells[3, 4], wS.Cells[3, 5]];
            //uEHelper.textAlighRight(range);
            //设置第三列宽度
            uEHelper.setColumnWidth("C", 42.25M);
            uEHelper.setColumnWidth("A", 5.13M);
            uEHelper.setRowHeight(1, 31);
            uEHelper.setRowHeight(2, 31);
            pb.Visible        = true;
            pb.Value          = 0;
            pb.Maximum        = dt.Rows.Count;
            lblResult.Visible = false;
            lblPrompt.Visible = true;
            lblPrompt.Text    = "请等待!";
            //开始写信息
            for (int i = 0; i <= dt.Rows.Count - 1; i++)
            {
                uEHelper.setSpecificCellValue(i + 4, 1, dt.Rows[i]["row_num"].ToString());
                uEHelper.setSpecificCellValue(i + 4, 2, dt.Rows[i]["Summary_Process"].ToString());
                uEHelper.setSpecificCellValue(i + 4, 3, dt.Rows[i]["specific_Process"].ToString());
                pb.Value++;
            }
            pb.Visible        = false;
            pb.Value          = 0;
            lblResult.Visible = true;
            lblPrompt.Visible = false;
            lblPrompt.Text    = "";
            for (int columnIndex = 4; columnIndex <= 30; columnIndex++)
            {
                uEHelper.setColumnWidthByColumnIndex(columnIndex, 4.5M);
            }
            Range range = wS.Range[wS.Cells[2 + dt.Rows.Count, 30], wS.Cells[2 + dt.Rows.Count, 30]];

            uEHelper.setAllTheBoxLine(range);
            uEHelper.merge("A1", "AD1");
            v_Excel.displayAlert();
            uEHelper.MergeTheSpecificColumnWithoutBlankContent(2);
            //设置边框。
            uEHelper.setAllTheBoxLine();
            v_Excel.saveWithoutAutoFit();
            v_Excel.closeTheApp();
            ShowResult.show(lblResult, cbPN.Text.Trim() + " 产量统计模板保存于: " + xlsFilePath, true);
            timerRestoreLblResult.Start();
        }