使用像素單位設置 EXCEL 列寬或行高


在導出 Excel 的時候, 經常要需要給列設置寬度或給行設置高度, 在使用 NPOI 或 EppPlus 等組件進行操作的時候, 列寬和行高的單位都不是像素, 好像是英寸,具體是啥也說不清。

平常在使用單位時, 已經習慣使用像素了, 所以希望在 EXCEL 里設置列寬或行高時也使用像素。

 

之前在使用 Aspose.Cells 時, 發現這個組件有個 SetRowHeightPixel 方法, 可以使用像素設置行高, 於是使用反編譯看了一下實現原理:

 

private static float GetDpiX()
{
    try
    {
        using (Bitmap image = new Bitmap(1, 1))
        {
            using (Graphics graphics = Graphics.FromImage(image))
            {
                return graphics.DpiX;
            }
        }
    }
    catch
    {
        return 72;
    }
}


public void SetRowHeightPixel(int row, int pixels)
{
    double height = (double)((float)pixels * 72f / (float)GetDpiX());
    this.SetRowHeight(row, height);
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM