You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

101 lines
3.2 KiB

using System;
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);
//}
}
}
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);
}
}
}