Frage

Ich verwende die Aspose Bibliothek ein Excel-Dokument zu erstellen. Irgendwo in irgendeiner Zelle brauche ich eine neue Linie zwischen zwei Teilen des Textes eingefügt werden soll.

Ich habe versucht, „\ r \ n“, aber es funktioniert nicht, nur zeigt zwei quadratische Symbole in der Zelle. Ich kann aber drücken Sie Alt + Eingabetaste eine neue Zeile in derselben Zelle zu erstellen.

Wie füge ich eine neue Zeile programmatisch?

War es hilfreich?

Lösung

Von den Aspose Cells Foren: Wie mit neuer Linie char verwenden, in einer Zelle?

Nachdem Sie liefern Text der Zelle IsTextWrapped Stil auf true gesetzt sollte

worksheet.Cells[0, 0].Style.WrapText = true;

Andere Tipps

cell.Text = "your firstline<br style=\"mso-data-placement:same-cell;\">your secondline";

Wenn Sie den Text aus DB erhalten dann:

cell.Text = textfromDB.Replace("\n", "<br style=\"mso-data-placement:same-cell;\">");

Sie müssen den Zeichencode einzufügen, die Excel verwendet, die IIRC ist 10 (zehn).


Bearbeiten : OK, hier ist etwas Code. Beachten Sie, dass ich in der Lage war, um zu bestätigen, dass der Charakter-Code verwendet, in der Tat 10 ist, durch eine Zelle zu schaffen enthalten:

  

A

     

B

... und dann auswählen und diese in dem VBA-Direktfenster ausführen:

?Asc(Mid(Activecell.Value,2,1))

Also, Sie den Code müssen diesen Wert in eine andere Zelle in VBA einzufügen wäre:

ActiveCell.Value = "A" & vbLf & "B"

(seit vbLf ist Zeichencode 10).

Ich weiß, Sie C # verwenden, aber ich finde es ist viel einfacher, um herauszufinden, was zu tun ist, wenn Sie tun es zuerst in VBA, da Sie es ausprobieren können „interaktiv“ ohne kompilieren zu müssen etwas. Was auch immer Sie tun, in C # ist einfach zu replizieren, was Sie in VBA zu tun, so gibt es kaum einen Unterschied. (Denken Sie daran, dass das C # Interop Zeug einfach ist, die gleichen zugrunde liegenden COM-Bibliotheken wie VBA).

Wie auch immer, die C # hierfür wäre:

oCell.Value = "A\nB";

Finde den Unterschied: -)


EDIT 2 : Aaaargh! Ich habe gerade wieder lesen den Pfosten, und sah, dass Sie die Aspose Bibliothek verwenden. Sorry, in diesem Fall habe ich keine Ahnung.

Intern Excel verwendet U + 000D + 000A U (CR + LF, \r\n) für einen Leitungsbruch, zumindest in seiner XML-Darstellung. Ich konnte auch nicht den Wert direkt in einer Zelle finden. Es wurde in eine anderen XML-Datei mit gemeinsamen Strings migriert. Vielleicht Zellen, die Zeilenumbrüche enthalten, werden unterschiedlich gehandhabt durch das Dateiformat und die Bibliothek nicht weiß, über diese.

SpreadsheetGear for .NET tut es so aus:

        IWorkbook workbook = Factory.GetWorkbook();
        IRange a1 = workbook.Worksheets[0].Cells["A1"];
        a1.Value = "Hello\r\nWorld!";
        a1.WrapText = true;
        workbook.SaveAs(@"c:\HelloWorld.xlsx", FileFormat.OpenXMLWorkbook);

Beachten Sie die "WrapText = true" - Excel den Text, ohne dass dies nicht einwickeln. Ich würde davon ausgehen, dass Aspose ähnliche APIs hat.

Disclaimer: Ich besitze SpreadsheetGear LLC

Wenn jemand interessiert sich für die Infragistics Lösung, hier ist es.

  1. Mit

    Environment.NewLine

  2. Stellen Sie sicher, dass Ihre Zelle gewickelt

    dataSheet.Rows[i].Cells[j].CellFormat.WrapText = ExcelDefaultableBoolean.True;

"\ n" funktioniert gut. Wird der Eingang von einem mehrzeiligen Textfeld kommen, werden die neuen Linienzeichen „\ r \ n“, wenn dies mit „\ n“ ersetzt wird, wird es funktionieren.

Mit PEAR 'Spreadsheet_Excel_Writer' und 'OLE':

Nur so kann ich „\n“ bekommen könnte zu arbeiten, um die Zelle $format->setTextWrap(); machte und dann „\n“ kann funktionieren würde.

Sie können mit Chr (13). Dann wickeln Sie einfach die ganze Sache in Chr (34). Chr (34) doppelte Anführungszeichen.

  • VB.Net Beispiel:
  • TheContactInfo = ""
  • TheContactInfo = Trim (TheEmail) & chr (13)
  • TheContactInfo = TheContactInfo & Trim (ThePhone) & chr (13)
  • TheContactInfo = Chr (34) & TheContactInfo & Chr (34)

Was für mich gearbeitet:

worksheet.Cells[0, 0].Style.WrapText = true;
worksheet.Cells[0, 0].Value = yourStringValue.Replace("\\r\\n", "\r\n");

Mein Problem war, dass die \ r \ n entkam kam.

Eigentlich ist es ganz einfach.

Sie können eine XML-Version von Excel bearbeiten. Bearbeiten eine Zelle, um ihnen neue Linie zwischen Ihrem Text zu geben, dann speichern Sie es. Später können Sie die Datei in Editor öffnen, dann werden Sie sehen, eine neue Linie dargestellt wird durch &#10;

haben einen Versuch ....

Haben Sie versucht, "\ n" Ich denke, es sollte funktionieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top