0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

C#とVB.NETでExcelとCSV間の変換

Posted at

はじめに

Excelは、Microsoft Excelで使用される標準的なファイル形式の1つであり、複数のワークシート、グラフ、数式、データを含む電子スプレッドシートを保存することができます。一方、CSVはデータの交換や保存に広く使用されるシンプルなテキストファイル形式です。複雑なフォーマットの規定がなく、通常は純粋なテキストデータのみを含んでいます。時には、これら2つの形式の間での変換によって、異なるプラットフォームやアプリケーション間でデータを柔軟に処理することが可能になります。

ツール

このライブラリは、無料でExcelファイルを作成、編集、変換することができますが、ページ数の制限があります。
または、有料版の製品の無料トライアルを申し込むこともできます。
有料版: Spire.XLS for .NET

インストール方法

  1. Visual Studioを開いて新しいプロジェクトを作成します。
  2. 「Solution Explorer」で「References」を右クリックし、「Nuget Manage Packages」を選択します。
  3. Free Spire.XLS for .NET を検索してインストールします。

2024-01-31_154432.png

ExcelからCSVへの変換

主な方法

  1. Workbook.LoadFromFile()----Excel ファイルをロードします。
  2. Workbook.Worksheets [index]----インデックスで特定のワークシートを取得します。
  3. XlsWorksheet.SaveToFile() ----特定のワークシートをCSVとして保存します。

以下の方法をお選びいただけます。
SaveToFile(string fileName, string separator)
SaveToFile(string fileName, string separator, Encoding encoding)
SaveToFile(string fileName, string separator, bool retainHiddenData)

コード

C#

using Spire.Xls;
using System.Text;

namespace ConvertAWorksheetToCsv
{
    class Program
    {
        static void Main(string[] args)
        {
            //Workbookクラスのインスタンスを作成する
            Workbook workbook = new Workbook();
            //Excelファイルをロードする
            workbook.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Sample.xlsx");
            //最初のワークシートを取得する
            Worksheet sheet = workbook.Worksheets[0];
            //ワークシートをCSVとして保存する
            sheet.SaveToFile("ExcelToCSV.csv", ",", Encoding.UTF8);
        }
    }
}

VB.NET

Imports Spire.Xls
Imports System.Text
 
Namespace ConvertAWorksheetToCsv
    Class Program
        Shared  Sub Main(ByVal args() As String)
            'Workbookクラスのインスタンスを作成する
            Dim workbook As Workbook =  New Workbook() 
            'Excelファイルをロードする
            workbook.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Sample.xlsx")
            '最初のワークシートを取得する
            Dim sheet As Worksheet =  workbook.Worksheets(0) 
            'ワークシートをCSVとして保存する
            sheet.SaveToFile("ExcelToCSV.csv", ",", Encoding.UTF8)
        End Sub
    End Class
End Namespace

image.png

CSVからExcelへの変換

主な方法

  1. Workbook.LoadFromFile()----CSV ファイルをロードします。
  2. Workbook.Worksheets [index] ----インデックスで特定のワークシートを取得します。
  3. Worksheet.AllocatedRange ----ワークシートの使用範囲にアクセスします。
  4. CellRange.IgnoreErrorOptions プロパティを IgnoreErrorType.NumberAsText として設定することで、範囲内の数値をテキストとして保存するときにエラーを無視します。
  5. CellRange.AutoFitColumns()/CellRange.AutoFitRows() ----行の高さと列の幅を自動調整します。
  6. Workbook.SaveToFile(string fileName, ExcelVersion version)---- CSV を Excel に保存します。

コード

C#

using Spire.Xls;

namespace ConvertCsvToExcel
{
    class Program
    {
        static void Main(string[] args)
        {
            //Workbookクラスのインスタンスを作成する
            Workbook workbook = new Workbook();

            //CSVファイルをロードする
            workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\ExcelToCSV.csv", ",", 1, 1);

            //最初のワークシートを取得する
            Worksheet sheet = workbook.Worksheets[0];

            //ワークシートの使用範囲にアクセスする
            CellRange usedRange = sheet.AllocatedRange;
            //数値をテキストとして保存するときにエラーを無視する
            usedRange.IgnoreErrorOptions = IgnoreErrorType.NumberAsText;
            //行の高さと列の幅を自動調整する
            usedRange.AutoFitColumns();
            usedRange.AutoFitRows();

            //結果ファイルを保存する
            workbook.SaveToFile("CSVToExcel.xlsx", ExcelVersion.Version2013);
        }
    }
}

VB.NET

Imports Spire.Xls
 
Namespace ConvertCsvToExcel
    Class Program
        Shared  Sub Main(ByVal args() As String)
            'Workbookクラスのインスタンスを作成する
            Dim workbook As Workbook =  New Workbook() 
 
            ' CSVファイルをロードする
            workbook.LoadFromFile("C:\Users\Administrator\Desktop\ExcelToCSV.csv", ",", 1, 1)
 
            '最初のワークシートを取得する
            Dim sheet As Worksheet =  workbook.Worksheets(0) 
 
            'ワークシートの使用範囲にアクセスする
            Dim usedRange As CellRange =  sheet.AllocatedRange 
            '数値をテキストとして保存するときにエラーを無視する
            usedRange.IgnoreErrorOptions = IgnoreErrorType.NumberAsText
            '行の高さと列の幅を自動調整する
            usedRange.AutoFitColumns()
            usedRange.AutoFitRows()
 
            '結果ファイルを保存する
            workbook.SaveToFile("CSVToExcel.xlsx", ExcelVersion.Version2013)
        End Sub
    End Class
End Namespace

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?