void worker_DoWork(object sender, DoWorkEventArgs e) { BackgroundWorker worker = sender as BackgroundWorker; DataExportClass Params = e.Argument as DataExportClass; Font defaultFont = new Font("宋体", 9f); String Path = Params.path; if (string.IsNullOrEmpty(Path)) { return; } MyCell fpSpread = new MyCell(); fpSpread.Watermark = ModuleHelperClient.GetWatermarkByModuleID(moduleID); //初始化模板样式 List <FarPoint.CalcEngine.FunctionInfo> Infos = FunctionItemInfoUtil.getFunctionItemInfos(); List <JZFormulaData> CrossSheetFormulaInfos = ModuleHelperClient.GetFormulaByModuleIndex(moduleID); Dictionary <Sys_Document, JZDocument> list = DocumentHelperClient.GetDocumentDataListByModuleIDAndTestRoomCode(moduleID, testRoomCode); if (list.Count == 0) { return; } Dictionary <Sys_Document, JZDocument> .Enumerator em = list.GetEnumerator(); int i = 0; while (em.MoveNext()) { Sys_Document docBase = em.Current.Key; JZDocument doc = em.Current.Value; if (i == 0) { foreach (JZSheet sheet in doc.Sheets) { ProgressScreen.Current.SetStatus = string.Format("正在准备表单{0}...", sheet.Name); String sheetXML = ModuleHelperClient.GetSheetXMLByID(sheet.ID); SheetView SheetView = Serializer.LoadObjectXml(typeof(SheetView), sheetXML, "SheetView") as SheetView; SheetView.Tag = sheet.ID; SheetView.SheetName = sheet.Name; SheetView.Cells[0, 0].Value = ""; SheetView.Protect = true; fpSpread.Sheets.Add(SheetView); foreach (FarPoint.CalcEngine.FunctionInfo Info in Infos) { SheetView.AddCustomFunction(Info); } } fpSpread.LoadFormulas(true); } i = i + 1; worker.ReportProgress((int)(((float)i / (float)list.Count) * 100)); foreach (JZSheet sheet in doc.Sheets) { SheetView sheetV = null; for (int j = 0; j < fpSpread.Sheets.Count; j++) { if (new Guid(fpSpread.Sheets[j].Tag.ToString()) == sheet.ID) { sheetV = fpSpread.Sheets[j]; break; } } if (sheetV == null) { break; } foreach (JZCell dataCell in sheet.Cells) { Cell cell = sheetV.Cells[dataCell.Name]; if (cell != null) { cell.Font = defaultFont; if (cell.CellType is ImageCellType) { if (dataCell.Value != null) { cell.Value = JZCommonHelper.StringToBitmap(dataCell.Value.ToString()); } } else { cell.Value = dataCell.Value; } } } } try { //保存资料到指定目录 String reportNumber = docBase.BGBH == "" ? "无报告编号" + i.ToString() : docBase.BGBH; ExcelWarningList ewl = new ExcelWarningList(); string fileName = Path + "\\" + moduleName + "-" + reportNumber + ".xls"; fpSpread.SaveExcel(fileName, ExcelSaveFlags.NoFlagsSet, ewl); } catch { } } }