PDF — это универсальный формат файлов, но его трудно редактировать. Если вы хотите изменить и рассчитать данные PDF, преобразование PDF в Excel будет идеальным решением. В этой статье вы узнаете, как конвертировать PDF в Excel на C# и VB.NET с помощью Spire.PDF for .NET.

Установите Spire.PDF for .NET

Для начала вам нужно добавить файлы DLL, включенные в пакет Spire.PDF for .NET, в качестве ссылок в ваш проект .NET. Файлы DLL можно загрузить по этой ссылке или установить через NuGet.

PM> Install-Package Spire.PDF

Преобразование PDF в Excel на C# и VB.NET

Ниже приведены шаги для преобразования документа PDF в Excel:

  • Инициализировать экземпляр класса PdfDocument.
  • Загрузите документ PDF с помощью метода PdfDocument.LoadFromFile(filePath).
  • Сохраните документ в Excel, используя метод PdfDocument.SaveToFile(filePath, FileFormat.XLSX).
  • C#
  • VB.NET
using Spire.Pdf;
    using Spire.Pdf.Conversion;
    
    namespace ConvertPdfToExcel
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Initialize an instance of PdfDocument class
                PdfDocument pdf = new PdfDocument();
                //Load the PDF document
                pdf.LoadFromFile("Sample.pdf");
    
                //Save the PDF document to XLSX
                pdf.SaveToFile("PdfToExcel.xlsx", FileFormat.XLSX);
            }
        }
    }

C#/VB.NET: Convert PDF to Excel

Преобразование многостраничного PDF в один лист Excel в C# и VB.NET

Ниже приведены шаги для преобразования многостраничного PDF-файла в один лист Excel:

  • Инициализировать экземпляр класса PdfDocument.
  • Загрузите документ PDF с помощью метода PdfDocument.LoadFromFile(filePath).
  • Инициализируйте экземпляр класса XlsxLineLayoutOptions в конструкторе класса, установив для первого параметра convertToMultipleSheet значение false.
  • Задайте параметры преобразования PDF в XLSX с помощью метода PdfDocument.ConvertOptions.SetPdfToXlsxOptions(XlsxLineLayoutOptions).
  • Сохраните документ в Excel, используя метод PdfDocument.SaveToFile(filePath, FileFormat.XLSX).
  • C#
  • VB.NET
using Spire.Pdf;
    using Spire.Pdf.Conversion;
    
    namespace ConvertPdfToExcel
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Initialize an instance of PdfDocument class
                PdfDocument pdf = new PdfDocument();
                //Load the PDF document
                pdf.LoadFromFile("Sample1.pdf");
    
                //Initialize an instance of XlsxLineLayoutOptions class, in the class constructor, setting the first parameter - convertToMultipleSheet as false.
                //The four parameters represent: convertToMultipleSheet, showRotatedText, splitCell, wrapText
                XlsxLineLayoutOptions options = new XlsxLineLayoutOptions(false, true, true, true);
                //Set PDF to XLSX convert options
                pdf.ConvertOptions.SetPdfToXlsxOptions(options);
    
                //Save the PDF document to XLSX
                pdf.SaveToFile("PdfToOneExcelSheet.xlsx", FileFormat.XLSX);
            }
        }
    }

C#/VB.NET: Convert PDF to Excel

Подать заявку на временную лицензию

Если вы хотите удалить оценочное сообщение из сгенерированных документов или избавиться от функциональных ограничений, пожалуйста запросить 30-дневную пробную лицензию для себя.

Смотрите также

Friday, 21 July 2023 02:31

C#/VB.NET: PDF in Excel konvertieren

Über NuGet installiert

PM> Install-Package Spire.PDF

verwandte Links

PDF ist ein vielseitiges Dateiformat, das jedoch schwierig zu bearbeiten ist. Wenn Sie PDF-Daten ändern und berechnen möchten, wäre die Konvertierung von PDF in Excel eine ideale Lösung. In diesem Artikel erfahren Sie, wie das geht Konvertieren Sie PDF in Excel in C# und VB.NET Verwendung von Spire.PDF for .NET.

Installieren Spire.PDF for .NET

Zunächst müssen Sie die im Spire.PDF for.NET-Paket enthaltenen DLL-Dateien als Referenzen in Ihrem .NET-Projekt hinzufügen. Die DLL-Dateien können entweder über diesen Link heruntergeladen oder über NuGet installiert werden.

PM> Install-Package Spire.PDF

Konvertieren Sie PDF in Excel in C# und VB.NET

Im Folgenden finden Sie die Schritte zum Konvertieren eines PDF-Dokuments in Excel:

  • Initialisieren Sie eine Instanz der PdfDocument-Klasse.
  • Laden Sie das PDF-Dokument mit der Methode PdfDocument.LoadFromFile(filePath).
  • Speichern Sie das Dokument mit der Methode PdfDocument.SaveToFile(filePath, FileFormat.XLSX) in Excel.
  • C#
  • VB.NET
using Spire.Pdf;
    using Spire.Pdf.Conversion;
    
    namespace ConvertPdfToExcel
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Initialize an instance of PdfDocument class
                PdfDocument pdf = new PdfDocument();
                //Load the PDF document
                pdf.LoadFromFile("Sample.pdf");
    
                //Save the PDF document to XLSX
                pdf.SaveToFile("PdfToExcel.xlsx", FileFormat.XLSX);
            }
        }
    }

C#/VB.NET: Convert PDF to Excel

Konvertieren Sie eine mehrseitige PDF-Datei in ein Excel-Arbeitsblatt in C# und VB.NET

Im Folgenden finden Sie die Schritte zum Konvertieren einer mehrseitigen PDF-Datei in ein Excel-Arbeitsblatt:

  • Initialisieren Sie eine Instanz der PdfDocument-Klasse.
  • Laden Sie das PDF-Dokument mit der Methode PdfDocument.LoadFromFile(filePath).
  • Initialisieren Sie eine Instanz der Klasse „XlsxLineLayoutOptions“ im Klassenkonstruktor und legen Sie den ersten Parameter „convertToMultipleSheet“ auf „false“ fest.
  • Legen Sie PDF-zu-XLSX-Konvertierungsoptionen mit der Methode PdfDocument.ConvertOptions.SetPdfToXlsxOptions(XlsxLineLayoutOptions) fest.
  • Speichern Sie das Dokument mit der Methode PdfDocument.SaveToFile(filePath, FileFormat.XLSX) in Excel.
  • C#
  • VB.NET
using Spire.Pdf;
    using Spire.Pdf.Conversion;
    
    namespace ConvertPdfToExcel
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Initialize an instance of PdfDocument class
                PdfDocument pdf = new PdfDocument();
                //Load the PDF document
                pdf.LoadFromFile("Sample1.pdf");
    
                //Initialize an instance of XlsxLineLayoutOptions class, in the class constructor, setting the first parameter - convertToMultipleSheet as false.
                //The four parameters represent: convertToMultipleSheet, showRotatedText, splitCell, wrapText
                XlsxLineLayoutOptions options = new XlsxLineLayoutOptions(false, true, true, true);
                //Set PDF to XLSX convert options
                pdf.ConvertOptions.SetPdfToXlsxOptions(options);
    
                //Save the PDF document to XLSX
                pdf.SaveToFile("PdfToOneExcelSheet.xlsx", FileFormat.XLSX);
            }
        }
    }

C#/VB.NET: Convert PDF to Excel

Beantragen Sie eine temporäre Lizenz

Wenn Sie die Bewertungsmeldung aus den generierten Dokumenten entfernen oder die Funktionseinschränkungen beseitigen möchten, wenden Sie sich bitte an uns Fordern Sie eine 30-Tage-Testlizenz an für sich selbst.

Siehe auch

Friday, 21 July 2023 02:29

C#/VB.NET: Convertir PDF a Excel

Instalado a través de NuGet

PM> Install-Package Spire.PDF

enlaces relacionados

PDF es un formato de archivo versátil, pero es difícil de editar. Si desea modificar y calcular datos PDF, la conversión de PDF a Excel sería una solución ideal. En este artículo, aprenderá cómo convertir PDF a Excel en C# y VB.NET usando Spire.PDF for .NET.

Instalar Spire.PDF for .NET

Para empezar, debe agregar los archivos DLL incluidos en el paquete Spire.PDF for .NET como referencias en su proyecto .NET. Los archivos DLL se pueden descargar desde este enlace o instalar a través de NuGet.

PM> Install-Package Spire.PDF

Convierta PDF a Excel en C# y VB.NET

Los siguientes son los pasos para convertir un documento PDF a Excel:

  • Inicialice una instancia de la clase PdfDocument.
  • Cargue el documento PDF usando el método PdfDocument.LoadFromFile(filePath).
  • Guarde el documento en Excel usando el método PdfDocument.SaveToFile(filePath, FileFormat.XLSX).
  • C#
  • VB.NET
using Spire.Pdf;
    using Spire.Pdf.Conversion;
    
    namespace ConvertPdfToExcel
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Initialize an instance of PdfDocument class
                PdfDocument pdf = new PdfDocument();
                //Load the PDF document
                pdf.LoadFromFile("Sample.pdf");
    
                //Save the PDF document to XLSX
                pdf.SaveToFile("PdfToExcel.xlsx", FileFormat.XLSX);
            }
        }
    }

C#/VB.NET: Convert PDF to Excel

Convierta un PDF de varias páginas en una hoja de cálculo de Excel en C# y VB.NET

Los siguientes son los pasos para convertir un PDF de varias páginas en una hoja de cálculo de Excel:

  • Inicialice una instancia de la clase PdfDocument.
  • Cargue el documento PDF usando el método PdfDocument.LoadFromFile(filePath).
  • Inicialice una instancia de la clase XlsxLineLayoutOptions, en el constructor de la clase, configurando el primer parámetro, convertToMultipleSheet, como falso.
  • Configure las opciones de conversión de PDF a XLSX mediante el método PdfDocument.ConvertOptions.SetPdfToXlsxOptions(XlsxLineLayoutOptions).
  • Guarde el documento en Excel usando el método PdfDocument.SaveToFile(filePath, FileFormat.XLSX).
  • C#
  • VB.NET
using Spire.Pdf;
    using Spire.Pdf.Conversion;
    
    namespace ConvertPdfToExcel
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Initialize an instance of PdfDocument class
                PdfDocument pdf = new PdfDocument();
                //Load the PDF document
                pdf.LoadFromFile("Sample1.pdf");
    
                //Initialize an instance of XlsxLineLayoutOptions class, in the class constructor, setting the first parameter - convertToMultipleSheet as false.
                //The four parameters represent: convertToMultipleSheet, showRotatedText, splitCell, wrapText
                XlsxLineLayoutOptions options = new XlsxLineLayoutOptions(false, true, true, true);
                //Set PDF to XLSX convert options
                pdf.ConvertOptions.SetPdfToXlsxOptions(options);
    
                //Save the PDF document to XLSX
                pdf.SaveToFile("PdfToOneExcelSheet.xlsx", FileFormat.XLSX);
            }
        }
    }

C#/VB.NET: Convert PDF to Excel

Solicitar una Licencia Temporal

Si desea eliminar el mensaje de evaluación de los documentos generados o deshacerse de las limitaciones de la función, por favor solicitar una licencia de prueba de 30 días para ti.

Ver también

Friday, 21 July 2023 02:28

C#/VB.NET: PDF를 Excel로 변환

NuGet을 통해 설치됨

PM> Install-Package Spire.PDF

관련된 링크들

PDF는 다목적 파일 형식이지만 편집하기가 어렵습니다. PDF 데이터를 수정하고 계산하려면 PDF를 Excel로 변환하는 것이 이상적인 솔루션입니다. 이 기사에서는 다음을 수행하는 방법을 배웁니다 C# 및 VB.NET에서 PDF를 Excel로 변환 Spire.PDF for .NET 사용.

Spire.PDF for .NET 설치

먼저 Spire.PDF for .NET 패키지에 포함된 DLL 파일을 .NET 프로젝트의 참조로 추가해야 합니다. DLL 파일은 다음에서 다운로드할 수 있습니다 이 링크 또는 NuGet을 통해 설치됩니다.

PM> Install-Package Spire.PDF

C# 및 VB.NET에서 PDF를 Excel로 변환

다음은 PDF 문서를 Excel로 변환하는 단계입니다.

  • PdfDocument 클래스의 인스턴스를 초기화합니다.
  • PdfDocument.LoadFromFile(filePath) 메서드를 사용하여 PDF 문서를 로드합니다.
  • PdfDocument.SaveToFile(filePath, FileFormat.XLSX) 메서드를 사용하여 문서를 Excel에 저장합니다.
  • C#
  • VB.NET
using Spire.Pdf;
    using Spire.Pdf.Conversion;
    
    namespace ConvertPdfToExcel
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Initialize an instance of PdfDocument class
                PdfDocument pdf = new PdfDocument();
                //Load the PDF document
                pdf.LoadFromFile("Sample.pdf");
    
                //Save the PDF document to XLSX
                pdf.SaveToFile("PdfToExcel.xlsx", FileFormat.XLSX);
            }
        }
    }

C#/VB.NET: Convert PDF to Excel

C# 및 VB.NET에서 다중 페이지 PDF를 하나의 Excel 워크시트로 변환

다음은 다중 페이지 PDF를 하나의 Excel 워크시트로 변환하는 단계입니다.

  • PdfDocument 클래스의 인스턴스를 초기화합니다.
  • PdfDocument.LoadFromFile(filePath) 메서드를 사용하여 PDF 문서를 로드합니다.
  • 클래스 생성자에서 XlsxLineLayoutOptions 클래스의 인스턴스를 초기화하고 첫 번째 매개 변수인 convertToMultipleSheet를 false로 설정합니다.
  • PdfDocument.ConvertOptions.SetPdfToXlsxOptions(XlsxLineLayoutOptions) 메서드를 사용하여 PDF를 XLSX로 변환 옵션을 설정합니다.
  • PdfDocument.SaveToFile(filePath, FileFormat.XLSX) 메서드를 사용하여 문서를 Excel에 저장합니다.
  • C#
  • VB.NET
using Spire.Pdf;
    using Spire.Pdf.Conversion;
    
    namespace ConvertPdfToExcel
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Initialize an instance of PdfDocument class
                PdfDocument pdf = new PdfDocument();
                //Load the PDF document
                pdf.LoadFromFile("Sample1.pdf");
    
                //Initialize an instance of XlsxLineLayoutOptions class, in the class constructor, setting the first parameter - convertToMultipleSheet as false.
                //The four parameters represent: convertToMultipleSheet, showRotatedText, splitCell, wrapText
                XlsxLineLayoutOptions options = new XlsxLineLayoutOptions(false, true, true, true);
                //Set PDF to XLSX convert options
                pdf.ConvertOptions.SetPdfToXlsxOptions(options);
    
                //Save the PDF document to XLSX
                pdf.SaveToFile("PdfToOneExcelSheet.xlsx", FileFormat.XLSX);
            }
        }
    }

C#/VB.NET: Convert PDF to Excel

임시 면허 신청

생성된 문서에서 평가 메시지를 제거하거나 기능 제한을 제거하려면 다음을 수행하십시오 30일 평가판 라이선스 요청 자신을 위해.

또한보십시오

Friday, 21 July 2023 02:26

C#/VB.NET: Converti PDF in Excel

Installato tramite NuGet

PM> Install-Package Spire.PDF

Link correlati

Il PDF è un formato di file versatile, ma è difficile da modificare. Se desideri modificare e calcolare i dati PDF, la conversione da PDF a Excel sarebbe la soluzione ideale. In questo articolo imparerai come convertire PDF in Excel in C# e VB.NET utilizzando Spire.PDF for .NET.

Installa Spire.PDF for .NET

Per cominciare, è necessario aggiungere i file DLL inclusi nel pacchetto Spire.PDF for .NET come riferimenti nel progetto .NET. I file DLL possono essere scaricati da questo link o installato tramite NuGet.

PM> Install-Package Spire.PDF

Converti PDF in Excel in C# e VB.NET

Di seguito sono riportati i passaggi per convertire un documento PDF in Excel:

  • Inizializza un'istanza della classe PdfDocument.
  • Caricare il documento PDF utilizzando il metodo PdfDocument.LoadFromFile(filePath).
  • Salvare il documento in Excel utilizzando il metodo PdfDocument.SaveToFile(filePath, FileFormat.XLSX).
  • C#
  • VB.NET
using Spire.Pdf;
    using Spire.Pdf.Conversion;
    
    namespace ConvertPdfToExcel
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Initialize an instance of PdfDocument class
                PdfDocument pdf = new PdfDocument();
                //Load the PDF document
                pdf.LoadFromFile("Sample.pdf");
    
                //Save the PDF document to XLSX
                pdf.SaveToFile("PdfToExcel.xlsx", FileFormat.XLSX);
            }
        }
    }

C#/VB.NET: Convert PDF to Excel

Converti un PDF multipagina in un foglio di lavoro Excel in C# e VB.NET

Di seguito sono riportati i passaggi per convertire un PDF multipagina in un foglio di lavoro Excel:

  • Inizializza un'istanza della classe PdfDocument.
  • Caricare il documento PDF utilizzando il metodo PdfDocument.LoadFromFile(filePath).
  • Inizializza un'istanza della classe XlsxLineLayoutOptions, nel costruttore della classe, impostando il primo parametro - convertToMultipleSheet come false.
  • Imposta le opzioni di conversione da PDF a XLSX utilizzando il metodo PdfDocument.ConvertOptions.SetPdfToXlsxOptions(XlsxLineLayoutOptions).
  • Salvare il documento in Excel utilizzando il metodo PdfDocument.SaveToFile(filePath, FileFormat.XLSX).
  • C#
  • VB.NET
using Spire.Pdf;
    using Spire.Pdf.Conversion;
    
    namespace ConvertPdfToExcel
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Initialize an instance of PdfDocument class
                PdfDocument pdf = new PdfDocument();
                //Load the PDF document
                pdf.LoadFromFile("Sample1.pdf");
    
                //Initialize an instance of XlsxLineLayoutOptions class, in the class constructor, setting the first parameter - convertToMultipleSheet as false.
                //The four parameters represent: convertToMultipleSheet, showRotatedText, splitCell, wrapText
                XlsxLineLayoutOptions options = new XlsxLineLayoutOptions(false, true, true, true);
                //Set PDF to XLSX convert options
                pdf.ConvertOptions.SetPdfToXlsxOptions(options);
    
                //Save the PDF document to XLSX
                pdf.SaveToFile("PdfToOneExcelSheet.xlsx", FileFormat.XLSX);
            }
        }
    }

C#/VB.NET: Convert PDF to Excel

Richiedi una licenza temporanea

Se desideri rimuovere il messaggio di valutazione dai documenti generati o eliminare le limitazioni delle funzioni, per favore richiedere una licenza di prova di 30 giorni per te.

Guarda anche

Friday, 21 July 2023 02:25

C#/VB.NET : convertir un PDF en Excel

Le PDF est un format de fichier polyvalent, mais il est difficile à modifier. Si vous souhaitez modifier et calculer des données PDF, la conversion de PDF en Excel serait une solution idéale. Dans cet article, vous apprendrez à convertir un PDF en Excel en C# et VB.NET à l'aide de Spire.PDF for .NET.

Installer Spire.PDF for .NET

Pour commencer, vous devez ajouter les fichiers DLL inclus dans le package Spire.PDF for .NET en tant que références dans votre projet .NET. Les fichiers DLL peuvent être téléchargés à partir de ce lien ou installés via NuGet.

PM> Install-Package Spire.PDF

Convertir PDF en Excel en C# et VB.NET

Voici les étapes pour convertir un document PDF en Excel :

  • Initialiser une instance de la classe PdfDocument.
  • Chargez le document PDF à l'aide de la méthode PdfDocument.LoadFromFile(filePath).
  • Enregistrez le document dans Excel à l'aide de la méthode PdfDocument.SaveToFile(filePath, FileFormat.XLSX).
  • C#
  • VB.NET
using Spire.Pdf;
    using Spire.Pdf.Conversion;
    
    namespace ConvertPdfToExcel
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Initialize an instance of PdfDocument class
                PdfDocument pdf = new PdfDocument();
                //Load the PDF document
                pdf.LoadFromFile("Sample.pdf");
    
                //Save the PDF document to XLSX
                pdf.SaveToFile("PdfToExcel.xlsx", FileFormat.XLSX);
            }
        }
    }

C#/VB.NET: Convert PDF to Excel

Convertir un PDF multipage en une feuille de calcul Excel en C# et VB.NET

Voici les étapes pour convertir un PDF de plusieurs pages en une seule feuille de calcul Excel :

  • Initialiser une instance de la classe PdfDocument.
  • Chargez le document PDF à l'aide de la méthode PdfDocument.LoadFromFile(filePath).
  • Initialisez une instance de la classe XlsxLineLayoutOptions, dans le constructeur de classe, en définissant le premier paramètre - convertToMultipleSheet sur false.
  • Définissez les options de conversion PDF vers XLSX à l'aide de la méthode PdfDocument.ConvertOptions.SetPdfToXlsxOptions(XlsxLineLayoutOptions).
  • Enregistrez le document dans Excel à l'aide de la méthode PdfDocument.SaveToFile(filePath, FileFormat.XLSX).
  • C#
  • VB.NET
using Spire.Pdf;
    using Spire.Pdf.Conversion;
    
    namespace ConvertPdfToExcel
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Initialize an instance of PdfDocument class
                PdfDocument pdf = new PdfDocument();
                //Load the PDF document
                pdf.LoadFromFile("Sample1.pdf");
    
                //Initialize an instance of XlsxLineLayoutOptions class, in the class constructor, setting the first parameter - convertToMultipleSheet as false.
                //The four parameters represent: convertToMultipleSheet, showRotatedText, splitCell, wrapText
                XlsxLineLayoutOptions options = new XlsxLineLayoutOptions(false, true, true, true);
                //Set PDF to XLSX convert options
                pdf.ConvertOptions.SetPdfToXlsxOptions(options);
    
                //Save the PDF document to XLSX
                pdf.SaveToFile("PdfToOneExcelSheet.xlsx", FileFormat.XLSX);
            }
        }
    }

C#/VB.NET: Convert PDF to Excel

Demander une licence temporaire

Si vous souhaitez supprimer le message d'évaluation des documents générés ou vous débarrasser des limitations de la fonction, veuillez demander une licence d'essai de 30 jours pour toi.

Voir également

Friday, 21 July 2023 02:23

C#/VB.NET: Converter Word para Excel

Instalado via NuGet

PM> Install-Package Spire.Office

Links Relacionados

Word e Excel são dois tipos de arquivo completamente diferentes. Os documentos do Word são usados para redigir ensaios, cartas ou criar relatórios, enquanto os documentos do Excel são usados para salvar dados em formato tabular, fazer gráficos ou realizar cálculos matemáticos. Não é recomendado converter um documento complexo do Word em uma planilha do Excel porque o Excel dificilmente pode renderizar o conteúdo de acordo com seu layout original no Word.

No entanto, se o seu documento do Word for composto principalmente de tabelas e você quiser analisar os dados da tabela no Excel, poderá usar o Spire.Office for .NET para converter Word para Excel enquanto mantendo uma boa legibilidade.

Instalar o Spire.Office for .NET

Para começar, você precisa adicionar os arquivos DLL incluídos no pacote Spire.Office for .NET como referências em seu projeto .NET. Os arquivos DLL podem ser baixados deste link ou instalado via NuGet.

PM> Install-Package Spire.Office

Converter Word para Excel em C# e VB.NET

Na verdade, esse cenário usa duas bibliotecas no pacote Spire.Office. Eles são Spire.Doc for .NET e Spire.XLS for .NET. O primeiro é usado para ler e extrair conteúdo de um documento do Word, e o segundo é usado para criar um documento do Excel e gravar dados nas células específicas. Para tornar este exemplo de código fácil de entender, criamos os três métodos personalizados a seguir que executam funções específicas.

  • ExportTableInExcel() - Exporta dados de uma tabela do Word para células especificadas do Excel.
  • CopyContentInTable() - CopyContentInTable() - Copia o conteúdo de uma célula de tabela no Word para uma célula do Excel.
  • CopyTextAndStyle() - CopyTextAndStyle() - Copia texto com formatação de um parágrafo do Word para uma célula do Excel.

As etapas a seguir demonstram como exportar dados de um documento inteiro do Word para uma planilha usando o Spire.Office for .NET.

  • Crie um objeto Documento para carregar um arquivo do Word.
  • Crie um objeto Worbbook e adicione uma planilha chamada "WordToExcel" a ele.
  • Percorra todas as seções no documento do Word, percorra todos os objetos de documento em uma determinada seção e determine se um objeto de documento é um parágrafo ou uma tabela.
  • Se o objeto do documento for um parágrafo, escreva o parágrafo em uma célula especificada no Excel usando o método CoypTextAndStyle().
  • Se o objeto do documento for uma tabela, exporte os dados da tabela de células do Word para Excel usando o método ExportTableInExcel().
  • Ajuste automaticamente a altura da linha e a largura da coluna no Excel para que os dados dentro de uma célula não excedam o limite da célula.
  • Salve a pasta de trabalho em um arquivo do Excel usando o método Workbook.SaveToFile().
  • C#
  • VB.NET
using Spire.Doc;
    using Spire.Doc.Documents;
    using Spire.Doc.Fields;
    using Spire.Xls;
    using System;
    using System.Drawing;
    
    namespace ConvertWordToExcel
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a Document object
                Document doc = new Document();
    
                //Load a Word file
                doc.LoadFromFile(@"C:\Users\Administrator\Desktop\Invoice.docx");
    
                //Create a Workbook object
                Workbook wb = new Workbook();
    
                //Remove the default worksheets
                wb.Worksheets.Clear();
    
                //Create a worksheet named "WordToExcel"
                Worksheet worksheet = wb.CreateEmptySheet("WordToExcel");
                int row = 1;
                int column = 1;
    
                //Loop through the sections in the Word document
                foreach (Section section in doc.Sections)
                {
                    //Loop through the document object under a certain section
                    foreach (DocumentObject documentObject in section.Body.ChildObjects)
                    {
                        //Determine if the object is a paragraph
                        if (documentObject is Paragraph)
                        {
                            CellRange cell = worksheet.Range[row, column];
                            Paragraph paragraph = documentObject as Paragraph;
                            //Copy paragraph from Word to a specific cell
                            CopyTextAndStyle(cell, paragraph);
                            row++;
                        }
    
                        //Determine if the object is a table
                        if (documentObject is Table)
                        {
                            Table table = documentObject as Table;
                            //Export table data from Word to Excel
                            int currentRow = ExportTableInExcel(worksheet, row, table);
                            row = currentRow;
                        }
                    }
                }
    
                //Auto fit row height and column width
                worksheet.AllocatedRange.AutoFitRows();
                worksheet.AllocatedRange.AutoFitColumns();
    
                //Wrap text in cells
                worksheet.AllocatedRange.IsWrapText = true;
    
                //Save the workbook to an Excel file
                wb.SaveToFile("WordToExcel.xlsx", ExcelVersion.Version2013);
            }
    
            //Export data from Word table to Excel cells
            private static int ExportTableInExcel(Worksheet worksheet, int row, Table table)
            {
                CellRange cell;
                int column;
                foreach (TableRow tbRow in table.Rows)
                {
                    column = 1;
                    foreach (TableCell tbCell in tbRow.Cells)
                    {
                        cell = worksheet.Range[row, column];
                        cell.BorderAround(LineStyleType.Thin, Color.Black);
                        CopyContentInTable(tbCell, cell);
                        column++;
                    }
                    row++;
                }
                return row;
            }
    
            //Copy content from a Word table cell to an Excel cell
            private static void CopyContentInTable(TableCell tbCell, CellRange cell)
            {
                Paragraph newPara = new Paragraph(tbCell.Document);
                for (int i = 0; i < tbCell.ChildObjects.Count; i++)
                {
                    DocumentObject documentObject = tbCell.ChildObjects[i];
                    if (documentObject is Paragraph)
                    {
                        Paragraph paragraph = documentObject as Paragraph;
                        foreach (DocumentObject cObj in paragraph.ChildObjects)
                        {
                            newPara.ChildObjects.Add(cObj.Clone());
                        }
                        if (i < tbCell.ChildObjects.Count - 1)
                        {
                            newPara.AppendText("\n");
                        }
                    }
                }
                CopyTextAndStyle(cell, newPara);
            }
    
            //Copy text and style of a paragraph to a cell
            private static void CopyTextAndStyle(CellRange cell, Paragraph paragraph)
            {
                RichText richText = cell.RichText;
                richText.Text = paragraph.Text;
                int startIndex = 0;
                foreach (DocumentObject documentObject in paragraph.ChildObjects)
                {
                    if (documentObject is TextRange)
                    {
                        TextRange textRange = documentObject as TextRange;
                        string fontName = textRange.CharacterFormat.FontName;
                        bool isBold = textRange.CharacterFormat.Bold;
                        Color textColor = textRange.CharacterFormat.TextColor;
                        float fontSize = textRange.CharacterFormat.FontSize;
                        string textRangeText = textRange.Text;
                        int strLength = textRangeText.Length;
                        ExcelFont font = cell.Worksheet.Workbook.CreateFont();
                        font.Color = textColor;
                        font.IsBold = isBold;
                        font.Size = fontSize;
                        font.FontName = fontName;
                        int endIndex = startIndex + strLength;
                        richText.SetFont(startIndex, endIndex, font);
                        startIndex += strLength;
                    }
                    if (documentObject is DocPicture)
                    {
                        DocPicture picture = documentObject as DocPicture;
                        cell.Worksheet.Pictures.Add(cell.Row, cell.Column, picture.Image);
                        cell.Worksheet.SetRowHeightInPixels(cell.Row, 1, picture.Image.Height);
                    }
                }
                switch (paragraph.Format.HorizontalAlignment)
                {
                    case HorizontalAlignment.Left:
                        cell.Style.HorizontalAlignment = HorizontalAlignType.Left;
                        break;
                    case HorizontalAlignment.Center:
                        cell.Style.HorizontalAlignment = HorizontalAlignType.Center;
                        break;
                    case HorizontalAlignment.Right:
                        cell.Style.HorizontalAlignment = HorizontalAlignType.Right;
                        break;
                }
            }
        }
    }

C#/VB.NET: Convert Word to Excel

Solicitar uma licença temporária

Se você deseja remover a mensagem de avaliação dos documentos gerados ou se livrar das limitações de função, por favor solicite uma licença de teste de 30 dias para você mesmo.

Veja também

Установлено через NuGet

PM> Install-Package Spire.Office

Ссылки по теме

Word и Excel — это два совершенно разных типа файлов. Документы Word используются для написания эссе, писем или создания отчетов, а документы Excel используются для сохранения данных в табличной форме, построения диаграмм или выполнения математических расчетов. Не рекомендуется преобразовывать сложный документ Word в электронную таблицу Excel, поскольку Excel едва ли может отображать содержимое в соответствии с его исходным макетом в Word.

Однако если ваш документ Word в основном состоит из таблиц и вы хотите проанализировать табличные данные в Excel, вы можете использовать Spire.Office for .NET для конвертировать ворд в эксель пока сохранение хорошей читабельности.

Установите Spire.Office for .NET

Для начала вам необходимо добавить файлы DLL, включенные в пакет Spire.Office for .NET, в качестве ссылок в ваш проект .NET. Файлы DLL можно загрузить с эта ссылка или установлен через NuGet.

PM> Install-Package Spire.Office

Преобразование Word в Excel в C# и VB.NET

Этот сценарий фактически использует две библиотеки в пакете Spire.Office. Это Spire.Doc for .NET и Spire.XLS for .NET. Первый используется для чтения и извлечения содержимого из документа Word, а второй используется для создания документа Excel и записи данных в определенные ячейки. Чтобы упростить понимание этого примера кода, мы создали следующие три пользовательских метода, которые выполняют определенные функции.

  • ExportTableInExcel() - Экспорт данных из таблицы Word в указанные ячейки Excel.
  • CopyContentInTable() - копирование содержимого из ячейки таблицы Word в ячейку Excel.
  • CopyTextAndStyle() - копирование текста с форматированием из абзаца Word в ячейку Excel.

Следующие шаги демонстрируют, как экспортировать данные из всего документа Word на лист с помощью Spire.Office for .NET.

  • Создайте объект Document для загрузки файла Word.
  • Создайте объект Worbbook и добавьте в него рабочий лист с именем «WordToExcel».
  • Просмотрите все разделы в документе Word, просмотрите все объекты документа в определенном разделе, а затем определите, является ли объект документа абзацем или таблицей.
  • Если объект документа представляет собой абзац, напишите абзац в указанной ячейке Excel с помощью метода CoypTextAndStyle().
  • Если объект документа представляет собой таблицу, экспортируйте данные таблицы из Word в ячейки Excel с помощью метода ExportTableInExcel().
  • Автоматически подбирайте высоту строки и ширину столбца в Excel, чтобы данные в ячейке не превышали границу ячейки.
  • Сохраните книгу в файл Excel, используя метод Workbook.SaveToFile().
  • C#
  • VB.NET
using Spire.Doc;
    using Spire.Doc.Documents;
    using Spire.Doc.Fields;
    using Spire.Xls;
    using System;
    using System.Drawing;
    
    namespace ConvertWordToExcel
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a Document object
                Document doc = new Document();
    
                //Load a Word file
                doc.LoadFromFile(@"C:\Users\Administrator\Desktop\Invoice.docx");
    
                //Create a Workbook object
                Workbook wb = new Workbook();
    
                //Remove the default worksheets
                wb.Worksheets.Clear();
    
                //Create a worksheet named "WordToExcel"
                Worksheet worksheet = wb.CreateEmptySheet("WordToExcel");
                int row = 1;
                int column = 1;
    
                //Loop through the sections in the Word document
                foreach (Section section in doc.Sections)
                {
                    //Loop through the document object under a certain section
                    foreach (DocumentObject documentObject in section.Body.ChildObjects)
                    {
                        //Determine if the object is a paragraph
                        if (documentObject is Paragraph)
                        {
                            CellRange cell = worksheet.Range[row, column];
                            Paragraph paragraph = documentObject as Paragraph;
                            //Copy paragraph from Word to a specific cell
                            CopyTextAndStyle(cell, paragraph);
                            row++;
                        }
    
                        //Determine if the object is a table
                        if (documentObject is Table)
                        {
                            Table table = documentObject as Table;
                            //Export table data from Word to Excel
                            int currentRow = ExportTableInExcel(worksheet, row, table);
                            row = currentRow;
                        }
                    }
                }
    
                //Auto fit row height and column width
                worksheet.AllocatedRange.AutoFitRows();
                worksheet.AllocatedRange.AutoFitColumns();
    
                //Wrap text in cells
                worksheet.AllocatedRange.IsWrapText = true;
    
                //Save the workbook to an Excel file
                wb.SaveToFile("WordToExcel.xlsx", ExcelVersion.Version2013);
            }
    
            //Export data from Word table to Excel cells
            private static int ExportTableInExcel(Worksheet worksheet, int row, Table table)
            {
                CellRange cell;
                int column;
                foreach (TableRow tbRow in table.Rows)
                {
                    column = 1;
                    foreach (TableCell tbCell in tbRow.Cells)
                    {
                        cell = worksheet.Range[row, column];
                        cell.BorderAround(LineStyleType.Thin, Color.Black);
                        CopyContentInTable(tbCell, cell);
                        column++;
                    }
                    row++;
                }
                return row;
            }
    
            //Copy content from a Word table cell to an Excel cell
            private static void CopyContentInTable(TableCell tbCell, CellRange cell)
            {
                Paragraph newPara = new Paragraph(tbCell.Document);
                for (int i = 0; i < tbCell.ChildObjects.Count; i++)
                {
                    DocumentObject documentObject = tbCell.ChildObjects[i];
                    if (documentObject is Paragraph)
                    {
                        Paragraph paragraph = documentObject as Paragraph;
                        foreach (DocumentObject cObj in paragraph.ChildObjects)
                        {
                            newPara.ChildObjects.Add(cObj.Clone());
                        }
                        if (i < tbCell.ChildObjects.Count - 1)
                        {
                            newPara.AppendText("\n");
                        }
                    }
                }
                CopyTextAndStyle(cell, newPara);
            }
    
            //Copy text and style of a paragraph to a cell
            private static void CopyTextAndStyle(CellRange cell, Paragraph paragraph)
            {
                RichText richText = cell.RichText;
                richText.Text = paragraph.Text;
                int startIndex = 0;
                foreach (DocumentObject documentObject in paragraph.ChildObjects)
                {
                    if (documentObject is TextRange)
                    {
                        TextRange textRange = documentObject as TextRange;
                        string fontName = textRange.CharacterFormat.FontName;
                        bool isBold = textRange.CharacterFormat.Bold;
                        Color textColor = textRange.CharacterFormat.TextColor;
                        float fontSize = textRange.CharacterFormat.FontSize;
                        string textRangeText = textRange.Text;
                        int strLength = textRangeText.Length;
                        ExcelFont font = cell.Worksheet.Workbook.CreateFont();
                        font.Color = textColor;
                        font.IsBold = isBold;
                        font.Size = fontSize;
                        font.FontName = fontName;
                        int endIndex = startIndex + strLength;
                        richText.SetFont(startIndex, endIndex, font);
                        startIndex += strLength;
                    }
                    if (documentObject is DocPicture)
                    {
                        DocPicture picture = documentObject as DocPicture;
                        cell.Worksheet.Pictures.Add(cell.Row, cell.Column, picture.Image);
                        cell.Worksheet.SetRowHeightInPixels(cell.Row, 1, picture.Image.Height);
                    }
                }
                switch (paragraph.Format.HorizontalAlignment)
                {
                    case HorizontalAlignment.Left:
                        cell.Style.HorizontalAlignment = HorizontalAlignType.Left;
                        break;
                    case HorizontalAlignment.Center:
                        cell.Style.HorizontalAlignment = HorizontalAlignType.Center;
                        break;
                    case HorizontalAlignment.Right:
                        cell.Style.HorizontalAlignment = HorizontalAlignType.Right;
                        break;
                }
            }
        }
    }

C#/VB.NET: Convert Word to Excel

Подать заявку на временную лицензию

Если вы хотите удалить оценочное сообщение из сгенерированных документов или избавиться от функциональных ограничений, пожалуйста запросить 30-дневную пробную лицензию для себя.

Смотрите также

Friday, 21 July 2023 02:20

C#/VB.NET: Word in Excel konvertieren

Über NuGet installiert

PM> Install-Package Spire.Office

verwandte Links

Word und Excel sind zwei völlig unterschiedliche Dateitypen. Word-Dokumente werden zum Schreiben von Aufsätzen, Briefen oder zum Erstellen von Berichten verwendet, während Excel-Dokumente zum Speichern von Daten in tabellarischer Form, zum Erstellen von Diagrammen oder zum Durchführen mathematischer Berechnungen verwendet werden. Es wird nicht empfohlen, ein komplexes Word-Dokument in eine Excel-Tabelle zu konvertieren, da Excel den Inhalt kaum entsprechend seinem ursprünglichen Layout in Word darstellen kann.

Wenn Ihr Word-Dokument jedoch hauptsächlich aus Tabellen besteht und Sie die Tabellendaten in Excel analysieren möchten, können Sie dazu Spire.Office for .NET verwendenKonvertieren Sie Word in Excelwährend Aufrechterhaltung einer guten Lesbarkeit.

Installieren Sie Spire.Office for .NET

Zunächst müssen Sie die im Spire.Office for .NET-Paket enthaltenen DLL-Dateien als Referenzen in Ihrem .NET-Projekt hinzufügen. Die DLL-Dateien können entweder über diesen Link heruntergeladen oder über NuGet installiert werden.

PM> Install-Package Spire.Office

Konvertieren Sie Word in Excel in C# und VB.NET

In diesem Szenario werden tatsächlich zwei Bibliotheken im Spire.Office-Paket verwendet. Es handelt sich um Spire.Doc for .NET und Spire.XLS for .NET. Ersteres wird zum Lesen und Extrahieren von Inhalten aus einem Word-Dokument verwendet, und letzteres wird zum Erstellen eines Excel-Dokuments und zum Schreiben von Daten in die spezifischen Zellen verwendet. Um dieses Codebeispiel leichter verständlich zu machen, haben wir die folgenden drei benutzerdefinierten Methoden erstellt, die bestimmte Funktionen ausführen.

  • ExportTableInExcel() - Daten aus einer Word-Tabelle in bestimmte Excel-Zellen exportieren.
  • CopyContentInTable() - Kopieren Sie Inhalte aus einer Tabellenzelle in Word in eine Excel-Zelle.
  • CopyTextAndStyle() - Text mit Formatierung aus einem Word-Absatz in eine Excel-Zelle kopieren.

Die folgenden Schritte veranschaulichen, wie Sie mit Spire.Office for .NET Daten aus einem gesamten Word-Dokument in ein Arbeitsblatt exportieren.

  • Erstellen Sie ein Document-Objekt, um eine Word-Datei zu laden.
  • Erstellen Sie ein Worbbook-Objekt und fügen Sie ihm ein Arbeitsblatt mit dem Namen „WordToExcel“ hinzu.
  • Durchlaufen Sie alle Abschnitte im Word-Dokument, durchlaufen Sie alle Dokumentobjekte unter einem bestimmten Abschnitt und bestimmen Sie dann, ob es sich bei einem Dokumentobjekt um einen Absatz oder eine Tabelle handelt.
  • Wenn das Dokumentobjekt ein Absatz ist, schreiben Sie den Absatz mithilfe der CoypTextAndStyle()-Methode in eine bestimmte Zelle in Excel.
  • Wenn das Dokumentobjekt eine Tabelle ist, exportieren Sie die Tabellendaten mit der Methode ExportTableInExcel() aus Word- in Excel-Zellen.
  • Passen Sie die Zeilenhöhe und Spaltenbreite in Excel automatisch an, sodass die Daten in einer Zelle die Zellgrenze nicht überschreiten.
  • Speichern Sie die Arbeitsmappe mit der Methode Workbook.SaveToFile() in einer Excel-Datei.
  • C#
  • VB.NET
using Spire.Doc;
    using Spire.Doc.Documents;
    using Spire.Doc.Fields;
    using Spire.Xls;
    using System;
    using System.Drawing;
    
    namespace ConvertWordToExcel
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a Document object
                Document doc = new Document();
    
                //Load a Word file
                doc.LoadFromFile(@"C:\Users\Administrator\Desktop\Invoice.docx");
    
                //Create a Workbook object
                Workbook wb = new Workbook();
    
                //Remove the default worksheets
                wb.Worksheets.Clear();
    
                //Create a worksheet named "WordToExcel"
                Worksheet worksheet = wb.CreateEmptySheet("WordToExcel");
                int row = 1;
                int column = 1;
    
                //Loop through the sections in the Word document
                foreach (Section section in doc.Sections)
                {
                    //Loop through the document object under a certain section
                    foreach (DocumentObject documentObject in section.Body.ChildObjects)
                    {
                        //Determine if the object is a paragraph
                        if (documentObject is Paragraph)
                        {
                            CellRange cell = worksheet.Range[row, column];
                            Paragraph paragraph = documentObject as Paragraph;
                            //Copy paragraph from Word to a specific cell
                            CopyTextAndStyle(cell, paragraph);
                            row++;
                        }
    
                        //Determine if the object is a table
                        if (documentObject is Table)
                        {
                            Table table = documentObject as Table;
                            //Export table data from Word to Excel
                            int currentRow = ExportTableInExcel(worksheet, row, table);
                            row = currentRow;
                        }
                    }
                }
    
                //Auto fit row height and column width
                worksheet.AllocatedRange.AutoFitRows();
                worksheet.AllocatedRange.AutoFitColumns();
    
                //Wrap text in cells
                worksheet.AllocatedRange.IsWrapText = true;
    
                //Save the workbook to an Excel file
                wb.SaveToFile("WordToExcel.xlsx", ExcelVersion.Version2013);
            }
    
            //Export data from Word table to Excel cells
            private static int ExportTableInExcel(Worksheet worksheet, int row, Table table)
            {
                CellRange cell;
                int column;
                foreach (TableRow tbRow in table.Rows)
                {
                    column = 1;
                    foreach (TableCell tbCell in tbRow.Cells)
                    {
                        cell = worksheet.Range[row, column];
                        cell.BorderAround(LineStyleType.Thin, Color.Black);
                        CopyContentInTable(tbCell, cell);
                        column++;
                    }
                    row++;
                }
                return row;
            }
    
            //Copy content from a Word table cell to an Excel cell
            private static void CopyContentInTable(TableCell tbCell, CellRange cell)
            {
                Paragraph newPara = new Paragraph(tbCell.Document);
                for (int i = 0; i < tbCell.ChildObjects.Count; i++)
                {
                    DocumentObject documentObject = tbCell.ChildObjects[i];
                    if (documentObject is Paragraph)
                    {
                        Paragraph paragraph = documentObject as Paragraph;
                        foreach (DocumentObject cObj in paragraph.ChildObjects)
                        {
                            newPara.ChildObjects.Add(cObj.Clone());
                        }
                        if (i < tbCell.ChildObjects.Count - 1)
                        {
                            newPara.AppendText("\n");
                        }
                    }
                }
                CopyTextAndStyle(cell, newPara);
            }
    
            //Copy text and style of a paragraph to a cell
            private static void CopyTextAndStyle(CellRange cell, Paragraph paragraph)
            {
                RichText richText = cell.RichText;
                richText.Text = paragraph.Text;
                int startIndex = 0;
                foreach (DocumentObject documentObject in paragraph.ChildObjects)
                {
                    if (documentObject is TextRange)
                    {
                        TextRange textRange = documentObject as TextRange;
                        string fontName = textRange.CharacterFormat.FontName;
                        bool isBold = textRange.CharacterFormat.Bold;
                        Color textColor = textRange.CharacterFormat.TextColor;
                        float fontSize = textRange.CharacterFormat.FontSize;
                        string textRangeText = textRange.Text;
                        int strLength = textRangeText.Length;
                        ExcelFont font = cell.Worksheet.Workbook.CreateFont();
                        font.Color = textColor;
                        font.IsBold = isBold;
                        font.Size = fontSize;
                        font.FontName = fontName;
                        int endIndex = startIndex + strLength;
                        richText.SetFont(startIndex, endIndex, font);
                        startIndex += strLength;
                    }
                    if (documentObject is DocPicture)
                    {
                        DocPicture picture = documentObject as DocPicture;
                        cell.Worksheet.Pictures.Add(cell.Row, cell.Column, picture.Image);
                        cell.Worksheet.SetRowHeightInPixels(cell.Row, 1, picture.Image.Height);
                    }
                }
                switch (paragraph.Format.HorizontalAlignment)
                {
                    case HorizontalAlignment.Left:
                        cell.Style.HorizontalAlignment = HorizontalAlignType.Left;
                        break;
                    case HorizontalAlignment.Center:
                        cell.Style.HorizontalAlignment = HorizontalAlignType.Center;
                        break;
                    case HorizontalAlignment.Right:
                        cell.Style.HorizontalAlignment = HorizontalAlignType.Right;
                        break;
                }
            }
        }
    }

C#/VB.NET: Convert Word to Excel

Beantragen Sie eine temporäre Lizenz

Wenn Sie die Bewertungsmeldung aus den generierten Dokumenten entfernen oder die Funktionseinschränkungen beseitigen möchten, wenden Sie sich bitte an uns Fordern Sie eine 30-Tage-Testlizenz an für sich selbst.

Siehe auch

Friday, 21 July 2023 02:19

C#/VB.NET: Convertir Word a Excel

Instalado a través de NuGet

PM> Install-Package Spire.Office

enlaces relacionados

Word y Excel son dos tipos de archivos completamente diferentes. Los documentos de Word se usan para escribir ensayos, cartas o crear informes, mientras que los documentos de Excel se usan para guardar datos en forma tabular, hacer gráficos o realizar cálculos matemáticos. No se recomienda convertir un documento de Word complejo en una hoja de cálculo de Excel porque difícilmente Excel puede representar el contenido de acuerdo con su diseño original en Word.

Sin embargo, si su documento de Word se compone principalmente de tablas y desea analizar los datos de la tabla en Excel, puede usar Spire.Office for .NET para convertir Word a Excel mientras manteniendo una buena legibilidad.

Instalar Spire.Office for .NET

Para empezar, debe agregar los archivos DLL incluidos en el paquete Spire.Office for .NET como referencias en su proyecto .NET. Los archivos DLL se pueden descargar desde este enlace o instalado a través de NuGet.

PM> Install-Package Spire.Office

Convierta Word a Excel en C# y VB.NET

Este escenario en realidad usa dos bibliotecas en el paquete Spire.Office. Son Spire.Doc for .NET y Spire.XLS for .NET. El primero se usa para leer y extraer contenido de un documento de Word, y el segundo se usa para crear un documento de Excel y escribir datos en las celdas específicas. Para que este ejemplo de código sea fácil de entender, creamos los siguientes tres métodos personalizados que realizan funciones específicas.

  • ExportTableInExcel() : exporta datos de una tabla de Word a celdas de Excel específicas.
  • CopyContentInTable() : copia el contenido de una celda de tabla en Word a una celda de Excel.
  • CopyTextAndStyle() : copia texto con formato de un párrafo de Word a una celda de Excel.

Los siguientes pasos demuestran cómo exportar datos de un documento de Word completo a una hoja de trabajo utilizando Spire.Office for .NET.

  • Cree un objeto Documento para cargar un archivo de Word.
  • Cree un objeto Worbbook y agréguele una hoja de trabajo llamada "WordToExcel".
  • Recorra todas las secciones del documento de Word, recorra todos los objetos del documento en una determinada sección y luego determine si un objeto del documento es un párrafo o una tabla.
  • Si el objeto del documento es un párrafo, escriba el párrafo en una celda específica en Excel usando el método CoypTextAndStyle().
  • Si el objeto del documento es una tabla, exporte los datos de la tabla de celdas de Word a Excel usando el método ExportTableInExcel().
  • Ajuste automáticamente el alto de la fila y el ancho de la columna en Excel para que los datos dentro de una celda no excedan el límite de la celda.
  • Guarde el libro de trabajo en un archivo de Excel usando el método Workbook.SaveToFile().
  • C#
  • VB.NET
using Spire.Doc;
    using Spire.Doc.Documents;
    using Spire.Doc.Fields;
    using Spire.Xls;
    using System;
    using System.Drawing;
    
    namespace ConvertWordToExcel
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a Document object
                Document doc = new Document();
    
                //Load a Word file
                doc.LoadFromFile(@"C:\Users\Administrator\Desktop\Invoice.docx");
    
                //Create a Workbook object
                Workbook wb = new Workbook();
    
                //Remove the default worksheets
                wb.Worksheets.Clear();
    
                //Create a worksheet named "WordToExcel"
                Worksheet worksheet = wb.CreateEmptySheet("WordToExcel");
                int row = 1;
                int column = 1;
    
                //Loop through the sections in the Word document
                foreach (Section section in doc.Sections)
                {
                    //Loop through the document object under a certain section
                    foreach (DocumentObject documentObject in section.Body.ChildObjects)
                    {
                        //Determine if the object is a paragraph
                        if (documentObject is Paragraph)
                        {
                            CellRange cell = worksheet.Range[row, column];
                            Paragraph paragraph = documentObject as Paragraph;
                            //Copy paragraph from Word to a specific cell
                            CopyTextAndStyle(cell, paragraph);
                            row++;
                        }
    
                        //Determine if the object is a table
                        if (documentObject is Table)
                        {
                            Table table = documentObject as Table;
                            //Export table data from Word to Excel
                            int currentRow = ExportTableInExcel(worksheet, row, table);
                            row = currentRow;
                        }
                    }
                }
    
                //Auto fit row height and column width
                worksheet.AllocatedRange.AutoFitRows();
                worksheet.AllocatedRange.AutoFitColumns();
    
                //Wrap text in cells
                worksheet.AllocatedRange.IsWrapText = true;
    
                //Save the workbook to an Excel file
                wb.SaveToFile("WordToExcel.xlsx", ExcelVersion.Version2013);
            }
    
            //Export data from Word table to Excel cells
            private static int ExportTableInExcel(Worksheet worksheet, int row, Table table)
            {
                CellRange cell;
                int column;
                foreach (TableRow tbRow in table.Rows)
                {
                    column = 1;
                    foreach (TableCell tbCell in tbRow.Cells)
                    {
                        cell = worksheet.Range[row, column];
                        cell.BorderAround(LineStyleType.Thin, Color.Black);
                        CopyContentInTable(tbCell, cell);
                        column++;
                    }
                    row++;
                }
                return row;
            }
    
            //Copy content from a Word table cell to an Excel cell
            private static void CopyContentInTable(TableCell tbCell, CellRange cell)
            {
                Paragraph newPara = new Paragraph(tbCell.Document);
                for (int i = 0; i < tbCell.ChildObjects.Count; i++)
                {
                    DocumentObject documentObject = tbCell.ChildObjects[i];
                    if (documentObject is Paragraph)
                    {
                        Paragraph paragraph = documentObject as Paragraph;
                        foreach (DocumentObject cObj in paragraph.ChildObjects)
                        {
                            newPara.ChildObjects.Add(cObj.Clone());
                        }
                        if (i < tbCell.ChildObjects.Count - 1)
                        {
                            newPara.AppendText("\n");
                        }
                    }
                }
                CopyTextAndStyle(cell, newPara);
            }
    
            //Copy text and style of a paragraph to a cell
            private static void CopyTextAndStyle(CellRange cell, Paragraph paragraph)
            {
                RichText richText = cell.RichText;
                richText.Text = paragraph.Text;
                int startIndex = 0;
                foreach (DocumentObject documentObject in paragraph.ChildObjects)
                {
                    if (documentObject is TextRange)
                    {
                        TextRange textRange = documentObject as TextRange;
                        string fontName = textRange.CharacterFormat.FontName;
                        bool isBold = textRange.CharacterFormat.Bold;
                        Color textColor = textRange.CharacterFormat.TextColor;
                        float fontSize = textRange.CharacterFormat.FontSize;
                        string textRangeText = textRange.Text;
                        int strLength = textRangeText.Length;
                        ExcelFont font = cell.Worksheet.Workbook.CreateFont();
                        font.Color = textColor;
                        font.IsBold = isBold;
                        font.Size = fontSize;
                        font.FontName = fontName;
                        int endIndex = startIndex + strLength;
                        richText.SetFont(startIndex, endIndex, font);
                        startIndex += strLength;
                    }
                    if (documentObject is DocPicture)
                    {
                        DocPicture picture = documentObject as DocPicture;
                        cell.Worksheet.Pictures.Add(cell.Row, cell.Column, picture.Image);
                        cell.Worksheet.SetRowHeightInPixels(cell.Row, 1, picture.Image.Height);
                    }
                }
                switch (paragraph.Format.HorizontalAlignment)
                {
                    case HorizontalAlignment.Left:
                        cell.Style.HorizontalAlignment = HorizontalAlignType.Left;
                        break;
                    case HorizontalAlignment.Center:
                        cell.Style.HorizontalAlignment = HorizontalAlignType.Center;
                        break;
                    case HorizontalAlignment.Right:
                        cell.Style.HorizontalAlignment = HorizontalAlignType.Right;
                        break;
                }
            }
        }
    }

C#/VB.NET: Convert Word to Excel

Solicitar una Licencia Temporal

Si desea eliminar el mensaje de evaluación de los documentos generados o deshacerse de las limitaciones de la función, por favor solicitar una licencia de prueba de 30 días para ti.

Ver también