Java открыть файл XLSX

Даже если ваш ImageSource не является BitmapImage, вы все равно можете применить его к BitmapSource, который является базовым классом для всех классов растрового изображения WPF, таких как BitmapImage, BitmapFrame, WriteableBitmap, RenderTargetBitmap и т. д. (см. здесь ).

Итак, если ваш ImageSource на самом деле является BitmapSource (а не DrawingImage или D3DImage), следующий метод преобразует его в массив байтов с помощью указанного BitmapEncoder (например, PngBitmapEncoder):

public byte[] ImageSourceToBytes(BitmapEncoder encoder, ImageSource imageSource)
{
    byte[] bytes = null;
    var bitmapSource = imageSource as BitmapSource;

    if (bitmapSource != null)
    {
        encoder.Frames.Add(BitmapFrame.Create(bitmapSource));

        using (var stream = new MemoryStream())
        {
            encoder.Save(stream);
            bytes = stream.ToArray();
        }
    }

    return bytes;
}

0
задан luana nastasi 3 March 2019 в 13:12
поделиться

1 ответ

Что бы вы хотели сделать с этим? Если вы просто хотите обработать данные из Excel-файла, я бы экспортировал мой Excel-файл в csv-файл (в Excel 2016: Файл> Экспорт> Изменить тип файла> CSV (через запятую)).

Разделитель, используемый для разделения данных, зависит от настроек вашей системы (у меня установлена ​​точка с запятой, чтобы исключить неприятные ситуации с запятыми в ячейках).

Преимущество CSV-файла заключается в том, что вы можете обрабатывать файл как любой другой текстовый файл.

Внутри actionPerformed-метода вашего JButton вы можете открыть файл, используя:

try (Scanner sc = new Scanner(new File("my_csv_file.csv"))) {
    // do anything you want with the file using the scanner object
    // for example, print all data to the screen:
    // make sure you import java.util.Scanner, java.io.File and java.io.FileNotFoundException
    // and catch a FileNotFoundException or throw it to be handled anywhere else
    while (sc.hasNextLine()) {
        String data[] = sc.nextLine().split(";");
        for (String s : data) {
            System.out.print(s + "\t");
        }
        System.out.println();
    }
}
0
ответ дан bravdwal 3 March 2019 в 13:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: