using System; using System.Buffers.Text; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using Model; using Syncfusion.DocIO.DLS; using Syncfusion.XlsIO; namespace DOCGEN.Klassen { public class SyncFExcel { public bool create_nativ(string property, string value, string base64, string originalfile, string destfile) { FileStream ms = new FileStream(originalfile, FileMode.Open, FileAccess.Read); FileStream os = new FileStream(destfile, FileMode.Create); ExcelEngine ex = new ExcelEngine(); IApplication application = ex.Excel; IWorkbook workbook = application.Workbooks.Open(ms); try { workbook.CustomDocumentProperties[property].Text = value; } catch { workbook.CustomDocumentProperties.Remove(property); workbook.CustomDocumentProperties[property].Text = value; } workbook.Replace("{" + property + "}", value); //workbook.Names[workbook.CustomDocumentProperties[property].Name].RefersToRange.Text= workbook.CustomDocumentProperties[property].Text; workbook.SaveAs(os); workbook.Close(); workbook = null; application = null; ms.Close(); ms.Dispose(); os.Close(); os.Dispose(); return true; } public string Generate_Excel(string base64, clsDocData docdata) { ExcelEngine ex = new ExcelEngine(); IApplication app = ex.Excel; MemoryStream ms = new MemoryStream(Helper.EncodeExtensions.DecodeBase642ByteArray(base64)); IWorkbook workBook = app.Workbooks.Open(ms, ExcelOpenType.Automatic); string formattype = ""; foreach (clsDocValue dv in docdata.DocValues) { foreach (IWorksheet worksheet in workBook.Worksheets) { if (dv.FieldName == "TGEDKNameInhaber") { var a = 0; } try { worksheet.Range[dv.FieldName].Text = dv.Value.ToString(); } catch { } //foreach (IName name in worksheet.Names) //{ // name.Value = dv.Value.ToString(); // Debug.Print(name.Value); //} } } if (docdata.Barcode == true) { Insert_Barcode(workBook, docdata); } MemoryStream destms = new MemoryStream(); workBook.SaveAs(destms); workBook.Close(); workBook = null; ex.Dispose(); byte[] imageArray = destms.ToArray(); if (docdata.Result_as_PDF == "True") { DocGet getdoc = new DocGet(""); string destdoc = ""; destdoc = getdoc.Convert_Word_To_PDF(Convert.ToBase64String(imageArray)); return destdoc; } return Convert.ToBase64String(imageArray); } public void get_values(ref System.Data.DataTable dt, string excelfile) { ExcelEngine ex = new ExcelEngine(); IApplication app = ex.Excel; MemoryStream ms = new MemoryStream(Helper.EncodeExtensions.DecodeBase642ByteArray(excelfile)); IWorkbook workBook = app.Workbooks.Open(ms, ExcelOpenType.Automatic); foreach (System.Data.DataRow dr in dt.Rows) { int row = 0; int col = 0; row = Convert.ToInt32(dr["rowindex"]); col = Convert.ToInt32(dr["columnindex"]); string value = workBook.Worksheets[Convert.ToInt32(dr["sheet"])-1].Range[row, col].DisplayText.ToString(); dr["value"] = value; } workBook.Close(); workBook = null; ex.Dispose(); } public void Insert_Barcode(IWorkbook workBook, clsDocData docData) { System.Drawing.Image barcodeimage; BarcodeLib.Barcode Barcode = new BarcodeLib.Barcode(); switch (docData.barcode_type) { case "0": int rotation = 0; if (docData.barcode_horizontal == 0) { rotation = 270; } barcodeimage = Barcode.Get_LinerBarcode(Barcoded.Symbology.I2of5, docData.Dokumentid.Substring(6, 16), docData.Dokumentid.Substring(6, 16) + docData.barcode_zusatz, docData.barcode_textposition, docData.Zusatz_Font, Convert.ToInt32(docData.Zusatz_FontSize), rotation); break; case "1": //barcodeimage = Barcode.Get_Datamatrix(DataMatrix.net.DmtxScheme.DmtxSchemeAutoBest, docData.barcode_content, 4, 0, 0, "Left", docData.barcode_content, docData.barcode_font, docData.barcode_fontsize); barcodeimage = Barcode.Get_Datamatrix(DataMatrix.net.DmtxScheme.DmtxSchemeAscii, docData.barcode_content, 6, 6, 0, "Right", docData.barcode_text + docData.barcode_zusatz, docData.barcode_font, docData.barcode_fontsize + 5); //barcodeimage.Save(@"x:\bctest.png"); break; default: barcodeimage = Barcode.Get_LinerBarcode(Barcoded.Symbology.I2of5C, docData.Dokumentid.Substring(9, 13), docData.Dokumentid.Substring(6, 16) + docData.barcode_zusatz, docData.barcode_textposition, docData.barcode_font, Convert.ToInt32(docData.barcode_fontsize), 0); break; } foreach (IWorksheet worksheet in workBook.Worksheets) { foreach (IName name in workBook.Names) { if (name.Name.ToString().ToUpper().Substring(0, 7) == "TGEDKBC") { int i = name.Index; int row = worksheet.Range[name.Name].Row; int col = worksheet.Range[name.Name].Column; IPictureShape picture = worksheet.Pictures.AddPicture(row, col, barcodeimage); } } } // System.Drawing.Im } } }