はじめに
Excelは、Microsoft Excelで使用される標準的なファイル形式の1つであり、複数のワークシート、グラフ、数式、データを含む電子スプレッドシートを保存することができます。一方、CSVはデータの交換や保存に広く使用されるシンプルなテキストファイル形式です。複雑なフォーマットの規定がなく、通常は純粋なテキストデータのみを含んでいます。時には、これら2つの形式の間での変換によって、異なるプラットフォームやアプリケーション間でデータを柔軟に処理することが可能になります。
ツール
- Visual Studio 2022
- Free Spire.XLS for .NET
このライブラリは、無料でExcelファイルを作成、編集、変換することができますが、ページ数の制限があります。
または、有料版の製品の無料トライアルを申し込むこともできます。
有料版: Spire.XLS for .NET
インストール方法
- Visual Studioを開いて新しいプロジェクトを作成します。
- 「Solution Explorer」で「References」を右クリックし、「Nuget Manage Packages」を選択します。
- Free Spire.XLS for .NET を検索してインストールします。
ExcelからCSVへの変換
主な方法
- Workbook.LoadFromFile()----Excel ファイルをロードします。
- Workbook.Worksheets [index]----インデックスで特定のワークシートを取得します。
- 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
CSVからExcelへの変換
主な方法
- Workbook.LoadFromFile()----CSV ファイルをロードします。
- Workbook.Worksheets [index] ----インデックスで特定のワークシートを取得します。
- Worksheet.AllocatedRange ----ワークシートの使用範囲にアクセスします。
- CellRange.IgnoreErrorOptions プロパティを IgnoreErrorType.NumberAsText として設定することで、範囲内の数値をテキストとして保存するときにエラーを無視します。
- CellRange.AutoFitColumns()/CellRange.AutoFitRows() ----行の高さと列の幅を自動調整します。
- 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