Конвертирование Excel в RTF в памяти на C# и .NET


Полный код

using System;
using System.IO;
using SautinSoft;

namespace Sample
{
    class Sample
    {
        static void Main(string[] args)
        {
            //ConvertExcelAsByteArray();
            ConvertExcelAsMemoryStream();
        }

        public static void ConvertExcelAsByteArray()
        {
            // Convert Excel to RTF in memory
            ExcelToPdf x = new ExcelToPdf();

            // Set RTF as output format.
            x.OutputFormat = SautinSoft.ExcelToPdf.eOutputFormat.Rtf;

            // Let's create trace file.
            x.CreateTraceFile = true;
            x.TraceFilePath = Path.GetFullPath(@"..\..\..\trace.txt");

            string excelFile = Path.GetFullPath(@"..\..\..\test.xlsx");
            string rtfFile = Path.ChangeExtension(excelFile, ".rtf"); ;

            byte[] excelBytes = File.ReadAllBytes(excelFile);
            byte[] rtfBytes = null;

            try
            {
                rtfBytes = x.ConvertBytes(excelBytes);

                // Save rtfBytes to a file for demonstration purposes.
                File.WriteAllBytes(rtfFile, rtfBytes);
                System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(rtfFile) { UseShellExecute = true });
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.ReadLine();
            }
        }
        public static void ConvertExcelAsMemoryStream()
        {
            // Convert Excel to RTF in memory
            ExcelToPdf x = new ExcelToPdf();

            // Set RTF as output format.
            x.OutputFormat = SautinSoft.ExcelToPdf.eOutputFormat.Rtf;

			// Let's create trace file.
            x.CreateTraceFile = true;
            x.TraceFilePath = Path.GetFullPath(@"..\..\..\trace.txt");
			
            string excelFile = Path.GetFullPath(@"..\..\..\test.xlsx");
            string rtfFile = Path.ChangeExtension(excelFile, ".rtf");
            byte[] rtfBytes = null;

            try
            {
                // Let us say, we have a memory stream with Excel data.
                using (MemoryStream ms = new MemoryStream(File.ReadAllBytes(excelFile)))
                {
                    rtfBytes = x.ConvertBytes(ms.ToArray());
                }
                // Save rtfBytes to a file for demonstration purposes.
                File.WriteAllBytes(rtfFile, rtfBytes);
                System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(rtfFile) { UseShellExecute = true });
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.ReadLine();
            }
        }
    }
}

Download

Imports System
Imports System.IO
Imports SautinSoft

Module Sample

    Sub Main()
        ConvertExcelAsByteArray()
        'ConvertExcelAsMemoryStream()
    End Sub

    Public Sub ConvertExcelAsByteArray()
        ' Convert Excel to RTF in memory
        Dim x As New ExcelToPdf()

        ' Set RTF as output format.
        x.OutputFormat = SautinSoft.ExcelToPdf.eOutputFormat.Rtf

        ' Let's create trace file.
        x.CreateTraceFile = True
        x.TraceFilePath = Path.GetFullPath("..\..\..\trace.txt")

        Dim excelFile As String = Path.GetFullPath("..\..\..\test.xlsx")
        Dim rtfFile As String = Path.ChangeExtension(excelFile, ".rtf")

        Dim excelBytes() As Byte = File.ReadAllBytes(excelFile)
        Dim rtfBytes() As Byte = Nothing

        Try
            rtfBytes = x.ConvertBytes(excelBytes)

            ' Save rtfBytes to a file for demonstration purposes.
            File.WriteAllBytes(rtfFile, rtfBytes)
            System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(rtfFile) With {.UseShellExecute = True})
        Catch ex As Exception
            Console.WriteLine(ex.Message)
            Console.ReadLine()
        End Try
    End Sub

    Public Sub ConvertExcelAsMemoryStream()
        ' Convert Excel to RTF in memory
        Dim x As New ExcelToPdf()

        ' Set RTF as output format.
        x.OutputFormat = SautinSoft.ExcelToPdf.eOutputFormat.Rtf

        ' Let's create trace file.
        x.CreateTraceFile = True
        x.TraceFilePath = Path.GetFullPath("..\..\..\trace.txt")

        Dim excelFile As String = Path.GetFullPath("..\..\..\test.xlsx")
        Dim rtfFile As String = Path.ChangeExtension(excelFile, ".rtf")
        Dim rtfBytes() As Byte = Nothing

        Try
            ' Let us say, we have a memory stream with Excel data.
            Using ms As New MemoryStream(File.ReadAllBytes(excelFile))
                rtfBytes = x.ConvertBytes(ms.ToArray())
            End Using
            ' Save rtfBytes to a file for demonstration purposes.
            File.WriteAllBytes(rtfFile, rtfBytes)
            System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(rtfFile) With {.UseShellExecute = True})
        Catch ex As Exception
            Console.WriteLine(ex.Message)
            Console.ReadLine()
        End Try
    End Sub
End Module

Download


Если вам нужен пример кода или у вас есть вопрос: напишите нам по адресу [email protected] или спросите в онлайн-чате (правый нижний угол этой страницы) или используйте форму ниже:



Вопросы и предложения всегда приветствуются!

Мы разрабатываем компоненты .Net с 2002 года. Мы знаем форматы PDF, DOCX, RTF, HTML, XLSX и Images. Если вам нужна помощь в создании, изменении или преобразовании документов в различных форматах, мы можем вам помочь. Мы напишем для вас любой пример кода абсолютно бесплатно.