テキストの数値データを数値に変換(C++)

可能な使用シナリオ

時々、テキストとして入力された数値データを数値に変換したいと思うことがあります。Microsoft Excelでは、数字の前にアポストロフィを付けることでテキストとして数字を入力できます。たとえば**‘12345**とします。そうすることでエクセルはその数字を文字列として扱います。Aspose.Cellsでは、文字列を数値に変換することができます。

Excel でテキストとして保存されている数値を数値に変換する方法

いくつかの簡単な手順に従うことで、テキストとして保存された数値を数値に変換できます。

  1. 左上隅にエラーインジケータが付いた単一のセルまたはセル範囲を選択します。
  2. 選択したセルまたはセル範囲の隣に表示されるエラーボタンをクリックします。メニューで、数値に変換をクリックします。
  3. アラートボタンが利用できない場合は、この問題がある列を選択します。全列を変換したくない場合は、代わりに1つ以上のセルを選択できます。ただし、選択したセルが同じ列にあることを確認してください。そうでないと、このプロセスは機能しません。テキストを列分割ボタンは通常、列を分割するために使用されますが、単一のテキスト列を数値に変換するためにも使用できます。データタブで、テキストを列分割をクリックしてください。
  4. ポップアップボックスの「完了」ボタンをクリックします。
  5. テキストとして保存されている数値が数値に変換されます。

Aspose.Cells for C++を使用した数値のテキストからの変換方法

Aspose.Cells は、Cells.ConvertStringToNumericValue() メソッドを提供し、すべての文字列またはテキスト数字データを数値に変換するのに使用できます。

次のスクリーンショットは、セル A1:A17 に文字列の数値を示しています。文字列の数値は左寄せされています。

次のスクリーンショットでは、Cells.ConvertStringToNumericValue() を使用して文字列の数値を数値に変換しました。これらは今、右寄せになっています。

文字列の数値データを実数に変換するC++コード

以下のサンプルコードは、すべてのワークシートの文字列数値データを実際の数値に変換する方法を示しています。

#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;

int main()
{
    Aspose::Cells::Startup();

    // For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C

    // Source directory path
    U16String srcDir(u"..\\Data\\01_SourceDirectory\\");

    // Output directory path
    U16String outDir(u"..\\Data\\02_OutputDirectory\\");

    // Instantiate workbook object with an Excel file
    U16String inputFilePath = srcDir + u"SampleBook.xlsx";
    Workbook workbook(inputFilePath);

    // Iterate through all worksheets and convert string values to numeric
    for (int32_t i = 0; i < workbook.GetWorksheets().GetCount(); i++)
    {
        workbook.GetWorksheets().Get(i).GetCells().ConvertStringToNumericValue();
    }

    // Save the Excel file
    U16String outputFilePath = outDir + u"output_out.xlsx";
    workbook.Save(outputFilePath);

    std::cout << "Conversion completed successfully!" << std::endl;

    Aspose::Cells::Cleanup();
}