//using System; //using System.Collections.Generic; //using System.Linq; //using System.Reflection; //using System.Security.AccessControl; //using System.Text; //using System.Windows; //using BS.Shared; //using BS.Shared.Core; //using BS.Shared.DataContracts; //using BeWo.Office.Types; //using BeWo.ServiceProxy; //using BeWo.View.Detail; //using BeWo.ViewModel; //using Microsoft.Office.Interop.Word; //using System.IO; //using Application = Microsoft.Office.Interop.Word.Application; //using Word = Microsoft.Office.Interop.Word; //namespace BeWo.Office //{ // //struct TCellField // //{ // // internal int CellIndex; // // internal String FieldName; // // internal String Text; // //} // public class WordProcessor // { // private Application wordApp; // private Document wordDoc; // private String documentPath; // private ITableModel tableModel; // private IProgress progress; // private bool appCreated; // private bool createFormLetter = true; // private ViewDestination viewDestination; // private Dictionary usedFieldNames; // private String tempName; // private int pictureMergeFieldStart; // private float placeHolderWidth; // private float placeHolderHeight; // private bool removeLineFeed = true; // private IConverter converter; // private bool fileSaved; // public FileAttachmentDC FileAttachment { get; set; } // private Document tmpDoc; // public WordDocumentTemplateView TemplateView { get; set; } // public String DocumentPath // { // get { return documentPath; } // set { documentPath = value; } // } // public ITableModel TableModel // { // get { return this.tableModel; } // set { this.tableModel = value; } // } // public IProgress Progress // { // get { return this.progress; } // set { this.progress = value; } // } // public bool CreateFormLetter // { // get { return this.createFormLetter; } // set { this.createFormLetter = value; } // } // public bool RemoveLineFeed // { // get { return this.removeLineFeed; } // set { this.removeLineFeed = value; } // } // public bool OptimizePictureSize { get; set; } // private void OpenWordApplication() // { // appCreated = true; // wordApp = new Application(); // wordApp.DocumentBeforeSave += wordApp_DocumentBeforeSave; // var events = (ApplicationEvents4_Event)wordApp; // events.Quit += Quit; // } // void wordApp_DocumentBeforeSave(Document doc, ref bool saveAsUI, ref bool cancel) // { // if (!viewDestination.Equals(ViewDestination.Edit)) return; // fileSaved = true; // tmpDoc = doc; // } // void Quit() // { // if (viewDestination.Equals(ViewDestination.Preview)) // { // File.Delete(documentPath); // return; // } // if (!viewDestination.Equals(ViewDestination.Edit) || !fileSaved) return; // var binaryData = new FileStream(documentPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); // if (FileAttachment.FileAttachmentOid.HasValue) // TemplateView.DoFileUpdate(binaryData, Path.GetFileName(documentPath), FileAttachment.Description, FileAttachment.FileAttachmentOid.Value, () => CloseAndDispose(binaryData), (int)FileAttachment.FileAttachmentType); // fileSaved = false; // } // public void CloseAndDispose(Stream binaryData) // { // binaryData.Close(); // binaryData.Dispose(); // File.Delete(documentPath); // } // public void CreateReport(ViewDestination destination, IProgress progress, IConverter converter) // { // var cancelled = false; // try // { // viewDestination = destination; // pictureMergeFieldStart = 0; // OpenWordApplication(); // this.converter = converter; // this.progress = progress; // if (File.Exists(documentPath)) // { // if (tableModel != null) // { // if (tableModel.Count > 0 && this.progress != null) // { // this.progress.Init("Erstelle Bericht", tableModel.Count*2, "Lade Bericht...", true); // } // } // if (viewDestination == ViewDestination.Edit) // { // wordDoc = wordApp.Documents.Open("\"" + documentPath + "\""); // } // else // { // File.Copy(documentPath, GetWordDocumentTempPath()); // object missing = Missing.Value; // wordDoc = wordApp.Documents.Open("\"" + GetWordDocumentTempPath() + "\"", // ref missing, ref missing, ref missing, // ref missing, ref missing, ref missing, // ref missing, ref missing, ref missing, // ref missing, false); // } // if (wordDoc != null) // { // wordDoc.Activate(); // } // usedFieldNames = GetUsedFieldNames(); // PrepareDocument(); // InsertData(ref cancelled); // if (cancelled) // { // Dispose(); // return; // } // if (this.progress != null) // { // if (this.progress.Cancelled) // { // Dispose(); // return; // } // } // switch (destination) // { // case ViewDestination.Edit: // wordApp.Visible = true; // appCreated = false; // break; // case ViewDestination.Preview: // CreateDocument(false, destination); // wordApp.Visible = true; // appCreated = false; // break; // case ViewDestination.Printer: // CreateDocument(true, destination); // wordDoc.Close(WdSaveOptions.wdDoNotSaveChanges); // if (Progress != null) // Progress.Complete(); // return; // case ViewDestination.File: // CreateDocument(false, destination); // if (this.converter != null) // { // this.converter.Convert(); // appCreated = false; // wordDoc.Close(WdSaveOptions.wdDoNotSaveChanges); // wordApp.Quit(); // } // else // { // wordDoc.SaveAs(); // } // break; // default: // Dispose(); // break; // } // if (Progress != null) // Progress.Complete(); // } // else // { // throw new FileNotFoundException(documentPath); // } // if (destination != ViewDestination.File) // wordDoc.Saved = true; // } // catch (Exception ex) // { // if (Progress != null) // Progress.Complete(); // Dispose(); ////#if DEBUG //// var streamWriter = //// new StreamWriter( //// Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "WordProcessorErrorLog.txt"), true); //// var str = string.Format("{0}\n{1}\n\n", ex.Message, ex.StackTrace); //// var exIterator = ex; //// while (exIterator != null) //// { //// str += string.Format("{0}\n{1}\n\n", exIterator.Message, exIterator.StackTrace); //// var tmpex = exIterator.InnerException; //// exIterator = tmpex.InnerException; //// } //// streamWriter.WriteLine(str); //// streamWriter.Flush(); //// streamWriter.Close(); ////#endif // throw ex; // } // } // public void EditDocument() // { // CreateReport(ViewDestination.Edit, null, null); // } // private void PrepareDocument() // { // if (viewDestination != ViewDestination.Edit) // { // foreach (MailMergeField field in wordDoc.MailMerge.Fields) // { // if (field.Code.Text.ToLower().IndexOf("foto") >= 0) // { // field.Select(); // pictureMergeFieldStart = wordApp.Selection.Range.Start; // return; // } // } // } // } // private void ReplacePicture(InlineShape shape) // { // int endPos = shape.Range.End; // if (wordDoc.Range(endPos, endPos + 1).Fields.Count > 0) // { // Field mailField = wordDoc.Range(endPos, endPos + 1).Fields[1]; // String code = mailField.Code.Text; // if (code.ToLower().IndexOf("foto") >= 0) // { // mailField.Select(); // if (wordApp.Selection.Range.Start == endPos) // { // ReplacePictureWithFile(shape, wordApp.Selection.Text); // mailField.Delete(); // } // } // } // } // private void ReplacePictureWithFile(InlineShape shape, String fileName) // { // float widthPlaceHolder = shape.Width; // float heightPlaceHolder = shape.Height; // int pos = shape.Range.Start; // shape.Delete(); // InsertPictureAtPos(fileName, widthPlaceHolder, heightPlaceHolder, pos); // } // private void InsertPictureAtPos(String fileName, float width, float height, int pos) // { // if (!String.IsNullOrEmpty(fileName)) // { // wordApp.Selection.SetRange(pos, pos); // String filePath = Path.Combine(Path.GetTempPath(), fileName); // OfficeManager.AddOpenFile(filePath); // if (File.Exists(filePath)) // { // if (OptimizePictureSize) // { // //filePath = DTConvertPicture(lFilePath, PictureConverterPath, aWidth, aHeight, 100) // //OfficeManager.AddOpenFile(filePath); // } // InlineShape newPicture = wordApp.Selection.InlineShapes.AddPicture(filePath, false, true); // float widthOrg = newPicture.Width; // float heightOrg = newPicture.Height; // float newWidth; // float newHeight; // if ((widthOrg/width) > (heightOrg/height)) // { // newWidth = width; // newHeight = heightOrg*(width/widthOrg); // } // else // { // newHeight = height; // newWidth = widthOrg*(height/heightOrg); // } // newPicture.Height = newHeight; // newPicture.Width = newWidth; // } // } // } // private void CreateDocument(bool print, ViewDestination destination) // { // if (CreateFormLetter) // CreateDocumentWithMailMerge(print, destination); // else // CreateDocumentWithTable(print); // } // private void CreateDocumentWithTable(bool print) // { // if (Progress != null) // { // if (Progress.Cancelled) // return; // Progress.SetText("Erstelle Bericht"); // } // DeleteUnusedFields(); // Table templateTable = GetTemplateTable(); // if (templateTable != null) // { // int count = tableModel.Count; // int fieldRangeStart = templateTable.Rows[GetDataRowFromTable(templateTable)].Range.Start; // wordApp.Selection.SetRange(fieldRangeStart, fieldRangeStart); // wordDoc.MailMerge.Fields.AddNext(wordApp.Selection.Range); // wordApp.Selection.SetRange(fieldRangeStart, templateTable.Range.End); // wordApp.Selection.Copy(); // for (int i = 1; i <= count - 1; i++) // { // wordApp.Selection.Paste(); // if (Progress != null) // { // if (Progress.Cancelled) // { // wordDoc.MailMerge.ViewMailMergeFieldCodes = 0; // return; // } // if (i > count) i = count; // Progress.ProgressTo(1, "Erstelle Bericht (" + ((i*100)/count) + "%)", false); // } // } // if (Progress != null) // Progress.ProgressTo(2, "Erstelle Bericht (100%)", false); // wordApp.Selection.SetRange(fieldRangeStart, fieldRangeStart + 1); // wordApp.Selection.Delete(); // } // wordDoc.MailMerge.ViewMailMergeFieldCodes = 0; // if (Progress != null) // { // if (Progress.Cancelled) // return; // Progress.SetText("Bilder werden geladen"); // } // ReplacePicturesInDocument(); // if (print) // { // wordDoc.PrintOut(true); // } // } // private Table GetTemplateTable() // { // return wordDoc.Tables.Cast().FirstOrDefault(TableContainsFieldsInSecondRow); // } // private static bool TableContainsFieldsInSecondRow(Table table) // { // return table.Range.Fields.Count > 0 && table.Range.Fields.Cast().Any(field => field.Type == WdFieldType.wdFieldMergeField); // } // private static int GetDataRowFromTable(Table table) // { // if (table.Rows.Count >= 2) // return 2; // return table.Rows.Count == 1 ? 1 : 0; // } // private void ReplacePicturesInDocument() // { // if (pictureMergeFieldStart > 0) // { // if (wordDoc.InlineShapes.Count > 0) // { // List shapes = wordDoc.InlineShapes.Cast().ToList(); // foreach (InlineShape shape in shapes) // ReplacePicture(shape); // } // } // } // private void FindPicturePlaceHolder() // { // if (pictureMergeFieldStart > 0) // { // foreach (InlineShape shape in wordDoc.InlineShapes) // { // int endPos = shape.Range.End; // foreach (Field field in wordDoc.MailMerge.Fields) // { // String code = field.Code.Text; // if (code.ToLower().IndexOf("foto") >= 0) // { // field.Select(); // if (wordApp.Selection.Range.Start == endPos) // { // placeHolderWidth = shape.Width; // placeHolderHeight = shape.Height; // } // } // } // } // } // } // private void ReplaceMailMergePicture() // { // if (pictureMergeFieldStart > 0) // { // foreach (InlineShape shape in wordDoc.InlineShapes) // { // int endPos = shape.Range.End; // foreach (MailMergeField field in wordDoc.MailMerge.Fields) // { // String code = field.Code.Text; // if (code.ToLower().IndexOf("foto") >= 0) // { // field.Select(); // if (wordApp.Selection.Range.Start == endPos) // { // shape.Delete(); // InsertPictureAtPos(wordApp.Selection.Text, placeHolderWidth, // placeHolderHeight, wordApp.Selection.Range.Start); // field.Delete(); // return; // } // } // } // } // foreach (Field testField in wordDoc.Fields) // { // String code = testField.Code.Text; // if (code.ToLower().IndexOf("foto") >= 0 && // code.ToLower().IndexOf("includepicture") >= 0) // { // wordApp.ActiveWindow.View.ShowFieldCodes = true; // testField.Select(); // wordApp.Selection.SetRange(wordApp.Selection.Start, wordApp.Selection.Start); // wordApp.Selection.MoveRight(WdUnits.wdCharacter, 18); // wordApp.Selection.TypeText( // "\"C:\\Dokumente und Einstellungen\\christian.BEYONDSOFT\\Lokale Einstellungen\\Temp\\"); // wordApp.ActiveWindow.View.ShowFieldCodes = false; // return; // } // } // } // } // private void DeleteUnusedFields() // { // var deletedFields = new List(); // foreach (MailMergeField field in wordDoc.MailMerge.Fields) // if (field.Type == WdFieldType.wdFieldMergeField) // if (!MailMergeFieldExistsInDataSource(field)) // deletedFields.Add(field); // foreach (var deletedField in deletedFields) // deletedField.Delete(); // } // private bool MailMergeFieldExistsInDataSource(MailMergeField field) // { // String fieldCode = field.Code.Text.Trim(); // String[] array = tableModel.GetFieldNames(); // if (array != null) // foreach (var fieldName in array) // if (fieldCode.IndexOf(" " + fieldName) >= 0 || fieldCode.IndexOf(" \"" + fieldName + "\"") >= 0) // return true; // array = tableModel.GetVariableNames(); // if (array != null) // foreach (var fieldName in array) // if (fieldCode.IndexOf(" " + fieldName) >= 0 || fieldCode.IndexOf(" \"" + fieldName + "\"") >= 0) // return true; // return false; // } // private void CreateDocumentWithMailMerge(bool print, ViewDestination destination) // { // if (Progress != null) // { // if (Progress.Cancelled) // return; // Progress.SetText("Drucke Objekt"); // } // DeleteUnusedFields(); // if (pictureMergeFieldStart > 0) // FindPicturePlaceHolder(); // wordDoc.MailMerge.DataSource.ActiveRecord = WdMailMergeActiveRecord.wdFirstRecord; // for (int i = 1; i <= tableModel.Count; i++) // { // if (Progress != null) // { // if (Progress.Cancelled) // return; // Progress.ProgressTo(1, "Drucke Objekt " + i + " von " + tableModel.Count, false); // } // wordDoc.MailMerge.ViewMailMergeFieldCodes = 0; // //Tempbilder löschen // if (pictureMergeFieldStart > 0) // { // //funktioniert nur beim ersten Datensatz // if (i == 1) // ReplaceMailMergePicture(); // } // if (print) // { // wordDoc.Activate(); // wordDoc.PrintOut(i != tableModel.Count); // } // if (destination == ViewDestination.Preview) // continue; // wordDoc.MailMerge.DataSource.ActiveRecord = WdMailMergeActiveRecord.wdNextRecord; // } // } // public void Dispose() // { // if (appCreated && wordApp != null) // wordApp.Quit(WdSaveOptions.wdDoNotSaveChanges); // } // private String GetWordDocumentTempPath() // { // if (String.IsNullOrEmpty(tempName)) // tempName = Path.Combine(Path.GetTempPath(), Path.GetFileNameWithoutExtension(Path.GetRandomFileName()) + ".doc"); // return tempName; // } // private String CreateTempPath(String fileName) // { // var path = Path.Combine(Path.GetTempPath(), fileName); // OfficeManager.AddOpenFile(path); // return path; // } // private void InsertData(ref bool cancelled) // { // wordApp.Options.UpdateFieldsAtPrint = false; // if (tableModel != null) // { // var path = CreateTempPath(Path.GetFileNameWithoutExtension(Path.GetRandomFileName()) + ".txt"); // CreateMailMergeTextFile(path, ref cancelled); // if (!cancelled) // { // if (viewDestination == ViewDestination.Edit) // wordApp.Visible = true; // wordDoc.MailMerge.OpenDataSource(path); // } // } // } // private void CreateMailMergeTextFile(String fileName, ref bool cancelled) // { // var fieldNamesText = new StringBuilder(); // var emptyDataFieldsText = new StringBuilder(); // var allFieldNames = GetAllFieldNames(); // var textStringBuilder = new StringBuilder(); // foreach (String s in allFieldNames) // { // fieldNamesText.Append(s); // fieldNamesText.Append(Convert.ToChar(59)); // emptyDataFieldsText.Append("\""); // emptyDataFieldsText.Append(s); // emptyDataFieldsText.Append("\""); // emptyDataFieldsText.Append(Convert.ToChar(59)); // } // fieldNamesText.Remove(fieldNamesText.Length - 1, 1); // emptyDataFieldsText.Remove(emptyDataFieldsText.Length - 1, 1); // textStringBuilder.Append(fieldNamesText); // textStringBuilder.Append("\r\n"); // tableModel.MoveFirst(); // int count = 1; // if (!tableModel.DataAvailable) // { // textStringBuilder.Append(emptyDataFieldsText); // textStringBuilder.Append("\r\n"); // } // while (tableModel.DataAvailable) // { // if (Progress != null) // { // if (Progress.Cancelled) // { // //?Wird im VB Code nicht gesetzt cancelled = true; // return; // } // Progress.ProgressTo(1, "Lade Objekt " + count + " von " + tableModel.Count, false); // } // fieldNamesText.Clear(); // foreach (String item in allFieldNames) // { // String propertyValue = String.Empty; // if (usedFieldNames.ContainsKey(item)) // { // Object obj = tableModel.GetPropertyValue(item); // if (obj != null) // propertyValue = obj.ToString(); // } // if (propertyValue.IndexOf(Convert.ToChar(59)) >= 0) // propertyValue = propertyValue.Replace(Convert.ToChar(59), ','); // if (propertyValue.IndexOf('"') >= 0) // propertyValue = propertyValue.Replace('"', '\''); // //replace "Anführungstriche Oben" Chr(147) // if (propertyValue.IndexOf(Convert.ToChar(147)) >= 0) // propertyValue = propertyValue.Replace(Convert.ToChar(147), '-'); // //replace "Anführungstriche Unten" Chr(132) // if (propertyValue.IndexOf(Convert.ToChar(132)) >= 0) // propertyValue = propertyValue.Replace(Convert.ToChar(132), '-'); // if (RemoveLineFeed) // { // if (propertyValue.IndexOf(Convert.ToChar(10)) >= 0) // propertyValue = // propertyValue.Replace(String.Format("{0}{1}", Convert.ToChar(13), Convert.ToChar(10)), // " "); // } // fieldNamesText.Append("\""); // fieldNamesText.Append(propertyValue); // fieldNamesText.Append("\""); // fieldNamesText.Append(Convert.ToChar(59)); // } // fieldNamesText.Remove(fieldNamesText.Length - 1, 1); // textStringBuilder.Append(fieldNamesText); // textStringBuilder.Append("\n"); // count++; // tableModel.MoveNext(); // } // File.WriteAllText(fileName, textStringBuilder.ToString(), Encoding.Default); // } // private Dictionary GetUsedFieldNames() // { // var fieldNames = new Dictionary(); // var sb = new StringBuilder(); // foreach (Range range in wordDoc.StoryRanges) // { // sb.Append(range.Text); // } // String text = sb.ToString(); // int pos = text.IndexOf(Convert.ToChar(171)) + 1; // while (pos > 0) // { // int stop = text.IndexOf(Convert.ToChar(187), pos) + 1; // if (stop > 0) // { // String fieldName = text.Substring(pos, stop - pos - 1); // if (!fieldNames.ContainsKey(fieldName)) // fieldNames.Add(fieldName, fieldName); // pos = text.IndexOf(Convert.ToChar(171), stop) + 1; // } // else // pos = 0; // } // return fieldNames; // } // private String[] GetAllFieldNames() // { // var fieldNameDict = new Dictionary(); // var fields = new List(); // String[] array = tableModel.GetFieldNames(); // if (array != null) // { // foreach (string fieldName in array) // { // if (!fieldNameDict.ContainsKey(fieldName)) // { // fields.Add(fieldName); // fieldNameDict.Add(fieldName, true); // } // } // } // array = tableModel.GetVariableNames(); // if (array != null) // { // foreach (string fieldName in tableModel.GetVariableNames()) // { // if (!fieldNameDict.ContainsKey(fieldName)) // { // fields.Add(fieldName); // fieldNameDict.Add(fieldName, true); // } // } // } // return fields.ToArray(); // } ///* ~WordProcessor() // { // Finalize(); // } // */ ///* // private Dictionary GetUsedFieldNamesCSV() // { // var selected = new Dictionary(); // String tmpStr = File.ReadAllText(this.documentPath); // tmpStr = tmpStr.Replace("\"", ""); // tmpStr = tmpStr.Replace("\r\n", ""); // String[] fields = tmpStr.Split(new String[] { OfficeManager.CSV_DELIMITER }, StringSplitOptions.None); // foreach (var fieldName in fields) // { // selected.Add(fieldName, fieldName); // } // return selected; // } //*/ ///* // private String GetExcelDocumentTempPath() // { // if (String.IsNullOrEmpty(this.tempName)) // this.tempName = Path.Combine(Path.GetTempPath(), Path.GetFileNameWithoutExtension(Path.GetRandomFileName()) + ".csv"); // return this.tempName; // } //*/ ///* // private String EscapeCSVValue(String value) // { // String returnValue = value.Replace(Convert.ToChar(147), '-'); // returnValue = returnValue.Replace(Convert.ToChar(132), '-'); // returnValue = returnValue.Replace(Convert.ToChar(13), ' '); // returnValue = returnValue.Replace(Convert.ToChar(10), ' '); // returnValue = returnValue.Replace("\"", "\"\""); // return "\"" + returnValue + "\""; // } //*/ ///* // private TCellField GetCellFieldFromCell(Cell cell) // { // var cellField = new TCellField(); // String cellText = cell.Range.Text; // int pos = cellText.IndexOf(Convert.ToChar(171)); // String text = String.Empty; // if (pos > 0) // { // text = cellText.Substring(0, pos); // } // int stop = 0; // bool replaceText = false; // while (pos >= 0 && stop >= 0) // { // stop = cellText.IndexOf(Convert.ToChar(187), pos); // if (stop >= 0) // { // replaceText = true; // String name = cellText.Substring(pos + 1, stop - pos - 1); // cellField.FieldName = name; // cellField.Text = text + Convert.ToChar(171) + name + Convert.ToChar(187); // } // pos = cellText.IndexOf(Convert.ToChar(171), stop); // if (pos > stop) // text = cellText.Substring(stop + 1, pos - stop - 1); // } // if (replaceText) // cell.Range.Text = ""; // return cellField; // } // */ ///* // private String BuildCSVHeaderString() // { // var sb = new StringBuilder(); // foreach (var name in usedFieldNames.Values) // { // if (sb.Length > 0) // sb.Append(OfficeManager.CSV_DELIMITER); // sb.Append(EscapeCSVValue(name)); // } // return sb.ToString(); // } // */ ///* // private String CreateCSVData() // { // var sb = new StringBuilder(); // int count = 1; // this.tableModel.MoveFirst(); // while (this.tableModel.DataAvailable) // { // if (Progress != null) // { // if (Progress.Cancelled) // return sb.ToString(); // Progress.ProgressTo(1, "Lade Objekt " + count + " von " + this.tableModel.Count, false); // } // foreach (var field in this.usedFieldNames.Values) // { // if (sb.Length > 0) // sb.Append(OfficeManager.CSV_DELIMITER); // Object obj = this.tableModel.GetPropertyValue(field); // if (obj != null) // sb.Append(EscapeCSVValue(obj.ToString())); // } // sb.Append("\n"); // count++; // this.tableModel.MoveNext(); // } // return sb.ToString(); // } // */ ///* // private String GetExcelPath() // { // // If (mExcelPath = "") Then // // Dim lExcelApp As Excel.Application // // Set lExcelApp = New Excel.Application // // Let mExcelPath = """" & lExcelApp.Path & "\Excel.exe" & """ " // //End If // //Let GetExcelPath = mExcelPath // return null; // } //*/ ////Öffnet eine CSV-Datei und liest sie in die aktuelle Tabelle ab Zeile 1 Spalte 1 // //fName = Dateiname & Pfad // //FS = das Spaltentrennzeichen (Field Seperator), im Deutschen ein Semikolon ///* // private void ReadfromCSVSimple(String fname) // { // ReadfromCSVSimple(fname, ";"); // } //*/ ///* // private void ReadfromCSVSimple(String fname, String FS) // { // // Dim hfile As Integer ' Filehandle bzw. Dateinummer // //Dim i As Long ' Zähler über alle Zeilen // //Dim j As Integer ' Zähler über alle Spalten // //Dim OneLine As String ' Eine Zeile als String // //Dim myArr As Variant ' eine Zeile in Felder getrennt // //hfile = FreeFile // //Open fname For Input As #hfile // //While Not EOF(hfile) // // i = i + 1 // // Line Input #hfile, OneLine // // myArr = Split(OneLine, FS) // // ' With Range(Cells(i, 1), Cells(i, 1 + UBound(myArr))) // // ' .NumberFormat = "@" // // ' .Value = myArr // // ' End With // // For j = 0 To UBound(myArr) // // mExcelApp.Cells(i, 1 + j).NumberFormat = "@" // // mExcelApp.Cells(i, 1 + j).Value = myArr(j) // // Next // //Wend // //Close #hfile // } //*/ // } //}