Excel Проблемы с файлом ODS, созданным с помощью SODS

Я создаю электронную таблицу ODS, используя SODS (https://github.com/miachm/SODS). Это одностраничный неформатированный файл. LibreOffice доволен этим, как и Google Spreadsheets. Excel, с другой стороны, утверждает, что он содержит ошибки, и когда он пытается их исправить, он повреждает данные.

Как я могу порадовать Excel этим файлом *?

Код (это программа Play / Scala, accidentsDatasetCols - экстракторы столбцов, которые генерируют содержимое ячеек):

val sheet = new Sheet("accidents")
    // add title row
    sheet.appendColumns(accidentsDatasetCols.size)
    sheet.appendRow()
    val titleRow = sheet.getRange(0,0,1,accidentsDatasetCols.size)
    accidentsDatasetCols.zipWithIndex.foreach( c => {
      titleRow.getCell(0,c._2).setValue(c._1.name)
    } )

    // add data rows
    for {
      workAccidents <- accidents.listAllAccidents()
    } yield {
      for ( acc <- workAccidents ) {
        sheet.appendRow()
        val row = sheet.getRange(sheet.getLastRow,0, 1, accidentsDatasetCols.size)
        accidentsDatasetCols.zipWithIndex.foreach( c => row.getCell(0,c._2).setValue(c._1(acc)) )
      }
      val sprd = new SpreadSheet()
      sprd.addSheet(sheet, 0)
      var bytes:Array[Byte]=null
      Using( new ByteArrayOutputStream() ){ bas =>
        sprd.save(bas)
        bas.flush()
        bytes = bas.toByteArray
      }
      Ok(bytes).as("application/vnd.oasis.opendocument.spreadsheet")
        .withHeaders("Content-Disposition"->"attachment; filename=\"work-accidents.ods\"")
    }

Спасибо!

  • В качестве альтернативы, как я могу уже заставить MS исправить Excel ?!

Просто чтобы сузить область поиска ошибок: если файл, которым доволен LibreOffice, открывается в Calc и повторно сохраняется с другим именем (без изменения формата, по-прежнему как ODS), Excel также занимается саботажем с этим? повторно сохраненный файл?

JohnSUN 30.03.2021 15:14

Интересно .... Если я открою и сохраню файл в LibreOffice, Excel будет доволен этим.

Michael Bar-Sinai 30.03.2021 15:23

Отлично! Нет, конечно, плохо. Но теперь понятно, что в МС писать рано, это ошибка SODS, нужно писать там

JohnSUN 30.03.2021 15:27

Согласились, что это может быть что-то в SODS, но LibreOffice И Google Spreadsheets счастливы. Так что и здесь Excel может улучшиться :-))

Michael Bar-Sinai 30.03.2021 16:35
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
4
19
0

Другие вопросы по теме