Конвертация файлов XLSX в XLS
xlsx и xls - это два разных формата файлов, используемых в Microsoft Excel для хранения данных. Формат xlsx является новым форматом, который появился с версии Excel 2007 и выше, в то время как xls - это старый формат, используемый в более ранних версиях Excel.
Перевод файла из формата xlsx в xls может быть полезен в случае, если вам необходимо использовать старую версию Excel или взаимодействовать с программами, которые не поддерживают формат xlsx.
Существует несколько способов выполнить такую конвертацию. Рассмотрим несколько примеров кода на разных языках программирования.
1. Python:
from openpyxl import load_workbook
from openpyxl.utils import get_column_letter
from openpyxl.drawing.image import Image
from openpyxl import Workbook
def convert_xlsx_to_xls(xlsx_file, xls_file):
# Загрузка xlsx файла
wb = load_workbook(xlsx_file, read_only=True)
# Создание нового xls файла
xls_wb = Workbook()
xls_ws = xls_wb.active
# Копирование данных из xlsx в xls
for sheet in wb.sheetnames:
ws = wb[sheet]
for row in ws.iter_rows(values_only=True):
xls_ws.append(row)
# Сохранение xls файла
xls_wb.save(xls_file)
# Пример использования функции
convert_xlsx_to_xls('input.xlsx', 'output.xls')
2. JavaScript (с использованием библиотеки xlsx-family):
const xlsx = require('xlsx');
const fs = require('fs');
function convertXlsxToXls(xlsxFile, xlsFile) {
const workbook = xlsx.readFile(xlsxFile);
// Создание новой книги
const xlsWorkbook = xlsx.utils.book_new();
// Копирование листов из xlsx в xls
workbook.SheetNames.forEach(sheetName => {
const worksheet = workbook.Sheets[sheetName];
const newWorksheet = {};
for (let cell in worksheet) {
if (cell[0] === '!') continue;
const newCell = cell.replace(/\d/g, '');
newWorksheet[newCell] = worksheet[cell];
}
xlsx.utils.book_append_sheet(xlsWorkbook, newWorksheet, sheetName);
});
// Сохранение xls файла
xlsx.writeFile(xlsWorkbook, xlsFile);
}
// Пример использования функции
convertXlsxToXls('input.xlsx', 'output.xls');
3. Java (с использованием библиотеки Apache POI):
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.*;
import org.apache.poi.hssf.usermodel.*;
import java.io.*;
public class XlsxToXlsConverter {
public static void main(String[] args) {
String xlsxFile = "input.xlsx";
String xlsFile = "output.xls";
try {
// Загрузка xlsx файла
FileInputStream fis = new FileInputStream(xlsxFile);
Workbook wb = new XSSFWorkbook(fis);
// Создание нового xls файла
Workbook xlsWb = new HSSFWorkbook();
// Копирование данных из xlsx в xls
for (int sheetIndex = 0; sheetIndex < wb.getNumberOfSheets(); sheetIndex++) {
Sheet sheet = wb.getSheetAt(sheetIndex);
Sheet xlsSheet = xlsWb.createSheet(sheet.getSheetName());
for (int rowIndex = 0; rowIndex <= sheet.getLastRowNum(); rowIndex++) {
Row row = sheet.getRow(rowIndex);
Row xlsRow = xlsSheet.createRow(rowIndex);
for (int colIndex = 0; colIndex < row.getLastCellNum(); colIndex++) {
Cell cell = row.getCell(colIndex);
Cell xlsCell = xlsRow.createCell(colIndex);
xlsCell.setCellValue(cell.toString());
}
}
}
// Сохранение xls файла
FileOutputStream fos = new FileOutputStream(xlsFile);
xlsWb.write(fos);
fos.close();
wb.close();
xlsWb.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Это лишь некоторые примеры кода на разных языках программирования, которые позволяют конвертировать файл из формата xlsx в xls. Вы можете выбрать подходящую библиотеку и адаптировать код под свои потребности.