Esempio n. 1
0
        public HttpResponseMessage Export(CashflowSheetExportRequest request)
        {
            ExcelExportor exportor             = new ExcelExportor(new CashflowExportHandler());
            Dictionary <string, string> filter = request.filter;
            var lst = service.ListSheet(filter);
            var dt  = EntityConvertor <CashflowSheetItem> .ToDataTable(lst);

            MemoryStream ms = new MemoryStream();

            exportor.Export(ms, dt, ".xls");

            string relativePath = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
            string sPath        = Path.Combine(Path.GetFullPath(relativePath), "Cache");

            if (!Directory.Exists(sPath))
            {
                Directory.CreateDirectory(sPath);
            }
            string fileName = SerialNoService.GetUUID() + ".xls";
            string filePath = Path.Combine(sPath, fileName);

            using (FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write))
            {
                byte[] data = ms.ToArray();
                fs.Write(data, 0, data.Length);
                fs.Flush();
            }
            ms.Close();
            ms.Dispose();

            var stream = new FileStream(filePath, FileMode.Open);
            HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);

            response.Content = new StreamContent(stream);
            response.Content.Headers.ContentType        = new MediaTypeHeaderValue("application/vnd.ms-excel");
            response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
            {
                FileName = fileName
            };

            //System.IO.File.Delete(filePath);

            return(response);
        }
Esempio n. 2
0
        private void btn_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                var txt = (sender as Button).Name;
                switch (txt)
                {
                case "query":
                    var frmFilter = new FormListFilterPopup();
                    frmFilter.Filter            = m_filter;
                    frmFilter.FilterPopupEvent += (args) =>
                    {
                        m_filter   = args.Filter;
                        SheetModel = SheetModel;
                    };
                    frmFilter.Show();
                    break;

                case "refresh":
                    SheetModel = SheetModel;
                    break;

                case "formula":
                    if (SheetModel == SheetModel.FORMULA)
                    {
                        SheetModel = SheetModel.DATA;
                    }
                    else
                    {
                        SheetModel = SheetModel.FORMULA;
                    }
                    break;

                case "exportformula":
                    SaveFileDialog sflg = new SaveFileDialog();
                    sflg.Filter   = "Excel(*.xls)|*.xls|Excel(*.xlsx)|*.xlsx";
                    sflg.FileName = "资产负债表";
                    var bRnt = sflg.ShowDialog();
                    if (bRnt == null || bRnt == false)
                    {
                        return;
                    }
                    ExcelExportor exportor = new ExcelExportor(new BalanceSheetExportHandler());
                    var           dt       = EntityConvertor <ExcelTemplateItem> .ToDataTable(m_lstTemplate);

                    MemoryStream ms  = new MemoryStream();
                    string       flg = FileHelper.FileSuffix(sflg.FileName);
                    exportor.Export(ms, dt, flg);
                    using (FileStream fs = new FileStream(sflg.FileName, FileMode.Create, FileAccess.Write))
                    {
                        byte[] data = ms.ToArray();
                        fs.Write(data, 0, data.Length);
                        fs.Flush();
                    }
                    ms.Close();
                    ms.Dispose();
                    FileHelper.ExplorePath(sflg.FileName.Substring(0, sflg.FileName.LastIndexOf("\\")));
                    break;

                case "importformula":
                    OpenFileDialog ofd = new OpenFileDialog();
                    ofd.Filter           = "Excel(*.xls)|*.xls|Excel(*.xlsx)|*.xlsx";
                    ofd.Title            = "选择文件";
                    ofd.RestoreDirectory = true;
                    if (ofd.ShowDialog() == true)
                    {
                        DataFactory.Instance.GetTemplateExecuter().UploadTemplate("BalanceSheet", ofd.FileName);
                        FinanceMessageBox.Info("导入成功");
                    }
                    break;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                FinanceMessageBox.Error(ex.Message);
            }
        }