Aspose.Cellsを使用してワークブックをテキストまたはCSV形式で保存
Contents
[
Hide
]
時々、複数のワークシートを持つワークブックをテキスト形式に変換または保存したいことがあります。テキスト形式(たとえばTXT、TabDelim、CSVなど)の場合、デフォルトでMicrosoft ExcelとAspose.Cellsの両方がアクティブなワークシートの内容のみを保存します。
以下のコード例では、ワークブック全体をテキスト形式で保存する方法について説明しています。任意のMicrosoft ExcelまたはOpenOfficeスプレッドシートファイル(XLS、XLSX、XLSM、XLSB、ODSなど)を読み込み、任意の数のワークシートを含めることができます。
コードが実行されると、ワークブックのすべてのシートのデータがTXT形式に変換されます。
同じ例を変更して、ファイルをCSV形式で保存することもできます。デフォルトでは、TxtSaveOptions.Separator はカンマですので、CSV形式に保存する場合はセパレータを指定しないでください。
C#
string FilePath = @"..\..\..\Sample Files\";
string FileName = FilePath + "Save Workbook to Text or CSV Format.xlsx";
string destFileName = FilePath + "Save Workbook to Text or CSV Format.txt";
//Load your source workbook
Workbook workbook = new Workbook(FileName);
//0-byte array
byte[] workbookData = new byte[0];
//Text save options. You can use any type of separator
TxtSaveOptions opts = new TxtSaveOptions();
opts.Separator = '\t';
//Copy each worksheet data in text format inside workbook data array
for (int idx = 0; idx < workbook.Worksheets.Count; idx++)
{
//Save the active worksheet into text format
MemoryStream ms = new MemoryStream();
workbook.Worksheets.ActiveSheetIndex = idx;
workbook.Save(ms, opts);
//Save the worksheet data into sheet data array
ms.Position = 0;
byte[] sheetData = ms.ToArray();
//Combine this worksheet data into workbook data array
byte[] combinedArray = new byte[workbookData.Length + sheetData.Length];
Array.Copy(workbookData, 0, combinedArray, 0, workbookData.Length);
Array.Copy(sheetData, 0, combinedArray, workbookData.Length, sheetData.Length);
workbookData = combinedArray;
}
//Save entire workbook data into file
File.WriteAllBytes(destFileName, workbookData);