/// <summary> /// Exporta todas as <see cref="System.Data.DataTable"/> de um <see cref="System.Data.DataSet"/> para um arquivo XLSX. /// Utiliza como modelo um arquivo XLSX passado como parâmetro. /// </summary> /// <param name="p_filename">Nome do arquivo XLSX a ser salvo.</param> /// <param name="p_templatename">Nome do arquivo XLSX a ser usado como template.</param> private void ExportXLSX(string p_filename, string p_templatename) { Spartacus.ThirdParty.SejExcel.OoXml v_package = null; Spartacus.ThirdParty.SejExcel.gSheet v_sheet; try { v_package = new Spartacus.ThirdParty.SejExcel.OoXml(p_templatename); if (v_package != null && v_package.sheets != null && v_package.sheets.Count > 0) { this.v_progress.FireEvent("Spartacus.Utils.Excel", "ExportXLSX", 0.0, "Salvando arquivo " + p_filename); this.v_numtotalrows = 0; foreach (System.Data.DataTable v_table in this.v_set.Tables) this.v_numtotalrows += v_table.Rows.Count; this.v_inc = 100.0 / (double) this.v_numtotalrows; this.v_perc = 0.0; foreach (string v_key in v_package.sheets.Keys) { v_sheet = v_package.sheets[v_key]; if (v_sheet != null) this.FillSheetWithDataTable(v_sheet, this.v_set.Tables[v_sheet.Name]); else throw new Spartacus.Utils.Exception("Arquivo {0} contem uma planilha invalida.", p_templatename); } } else throw new Spartacus.Utils.Exception("Arquivo {0} nao pode ser aberto, ou nao contem planilhas com dados.", p_templatename); v_package.Save(p_filename); this.v_progress.FireEvent("Spartacus.Utils.Excel", "ExportXLSX", 100.0, "Arquivo " + p_filename + " salvo."); } catch (Spartacus.Utils.Exception e) { throw new Spartacus.Utils.Exception("Erro ao salvar o arquivo {0}", e, p_filename); } catch (System.Exception e) { throw new Spartacus.Utils.Exception("Erro ao salvar o arquivo {0}", e, p_filename); } finally { if (v_package != null) { v_package.Close(); v_package = null; } } }
/// <summary> /// Importa todas as planilhas de um arquivo XLSX para várias <see cref="System.Data.DataTable"/> dentro de um <see cref="System.Data.DataSet"/>. /// </summary> /// <param name="p_filename">Nome do arquivo XLSX.</param> private void ImportXLSX(string p_filename) { Spartacus.ThirdParty.SejExcel.OoXml v_package = null; Spartacus.ThirdParty.SejExcel.gSheet v_sheet; try { v_package = new Spartacus.ThirdParty.SejExcel.OoXml(p_filename); if (v_package != null && v_package.sheets != null && v_package.sheets.Count > 0) { foreach (string v_key in v_package.sheets.Keys) { v_sheet = v_package.sheets[v_key]; if (v_sheet != null) this.v_set.Tables.Add(this.SheetToDataTable(v_package, v_sheet)); } } else throw new Spartacus.Utils.Exception("Arquivo {0} nao pode ser aberto, ou nao contem planilhas com dados.", p_filename); } catch (Spartacus.Utils.Exception e) { throw new Spartacus.Utils.Exception("Erro ao carregar o arquivo {0}.", e, p_filename); } catch (System.Exception e) { throw new Spartacus.Utils.Exception("Erro ao carregar o arquivo {0}.", e, p_filename); } finally { if (v_package != null) { v_package.Close(); v_package = null; } } }