Out of memory when creating a thumbnail for an XLSX file with 260000 lines

Selamlar,
260000 satır içeren bir XLSX dosyası için thumbnail oluştururken, bir süre sonra memory tükeniyor.

Sample file link;

Code sample;
public void genPageThumb(string filePath)
{
var size = new Size(90, 120);
using (var converter = new Converter(filePath))
{
var target = filePath + $“_.png”;

            SavePageStream thumbStream = page => new FileStream(target, FileMode.Create);
            var options = new ImageConvertOptions
            {
                Pages = { 1 },
                Format = GroupDocs.Conversion.FileTypes.ImageFileType.Png,
                PageNumber = 1,
                Width = size.Width,
                Height = size.Height
            };

            converter.Convert(thumbStream, options);
        }
    }
1 Like

@fsimsek

Beklediğiniz çıktı bu mu?
output.png (2.5 KB)

Evet, bu çıktı kabul edilebilir.

1 Like

@fsimsek

Bu çıktıyı en son API sürümünü kullanarak oluşturduk. Lütfen kullandığınız API sürümünü belirtir misiniz (örn. 21.9, 20.10)? Ayrıca geliştirme ortamı ayrıntılarınızı da paylaşın (örn. RAM, OS, İşlemci).

GroupDocs.Total 21.11.0
Windows Server 2016
RAM 16Gb
CPU: Intel Xeon E5-2695 V2 @ 2.40GHz

Nwt Framework 4.7.2

1 Like

Hımm,
sanırım testlerde bir karışıklık oldu.
Bahsettiğim hatayı aldığım versiyon GroupDocs.Total 21.10 idi.
GroupDocs.Total 21.11.0 ile 7dk sonunda hatasız bir şekilde ilk sayfanın küçük resmini oluşturabildi.
Bu süreyi nasıl kısaltabiliriz? sadece ilk sayfanın ön izlemesini oluşturmamız gerekiyor.

1 Like

@fsimsek

Dönüşüm süresini azaltıp azaltamayacağımızı araştırıyoruz. İnceleme bileti kimliğiniz CONVERSIONNET-5005. Herhangi bir güncelleme durumunda sizi bilgilendireceğiz.

Belgeyi satır sayısına göre bölerek, sadece ilk sayfasını alabilir miyiz?
Anladığım kadarıyla, Merger sınıfının Excel için özel bir “LoadOption” tanımı yok.

Bu belge için, aşağıdaki çağrıda da hata alıyorum.
Bunu da ayrıca inceleyebilir misiniz?

        using (var merger = new GroupDocs.Merger.Merger(filePath))
        {
            var info = merger.GetDocumentInfo();
        }

@fsimsek

Bu sorguya burada yardımcı olunacaktır. Lütfen her zaman farklı bir sorun için yeni bir konu oluşturun. teşekkürler

@fsimsek

.NET için GroupDocs.Conversion, sayfanın belirli bir aralığını dönüştürmek için bir özellik sunar. Örneğin, D1’den F8’e. Lütfen aşağıdaki koda bir göz atın:

Contracts.Func<LoadOptions> getLoadOptions = () => new SpreadsheetLoadOptions
{
    ConvertRange = "10:30",
    OnePagePerSheet = true
};
using (Converter converter = new Converter("sample.xlsx", getLoadOptions))
{
    PdfConvertOptions options = new PdfConvertOptions();
    converter.Convert("converted.pdf", options);
}

Bu kesinlikle dönüşüm sürenizi azaltacak ve küçük resmi alacaksınız. İkinci olarak, SkipEmptyRowsAndColumns öğesini true olarak ayarlamanızı öneririz. Bu da süreci hızlandıracaktır.
Daha fazla ayrıntı için lütfen bu belgelere makale gidin.