gpt4 book ai didi

c# - OpenXML 与 MS Excel 中的自定义列宽

转载 作者:行者123 更新时间:2023-11-30 21:38:11 27 4
gpt4 key购买 nike

我正在使用 OpenXML SDK 创建 XLSX 文件,并将自定义列宽指定为 15:

using (SpreadsheetDocument spreadsheet = SpreadsheetDocument.Create("Book1.xlsx", SpreadsheetDocumentType.Workbook))
{
WorkbookPart workbookPart = spreadsheet.AddWorkbookPart();
workbookPart.Workbook = new Workbook();

WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
worksheetPart.Worksheet = new Worksheet();

spreadsheet.WorkbookPart.Workbook.AppendChild<Sheets>(
new Sheets(
new Sheet() { Id = spreadsheet.WorkbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "Sheet1" }));

worksheetPart.Worksheet.Append(
new Columns(
new Column() { Min = 1, Max = 1, Width = 15, CustomWidth = true }),
new SheetData());

workbookPart.Workbook.Save();
}

但是当我在 MS Excel 中打开生成的“Book1.xlsx”文件并检查列的值时,它显示:

Width: 14.29 (105 pixels)

此外,当我使用 MS Excel 设置列的值时:

Width: 15 (110 pixels)

然后使用 OpenXML SDK 读取该值,我得到 ~15.711
问题是为什么,为什么会不同?

最佳答案

这种差异可能是由于 MS Excel 计算列宽(在加载和更改时执行此操作)时考虑的几个变量所致; Normal风格的字体设置、机器的DPI设置、MS Excel的标尺单位等。

关于 JimSnyder 提供的公式,请注意 MS Excel 的列宽计算与标准指定的略有不同,请参阅 here .

关于c# - OpenXML 与 MS Excel 中的自定义列宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46237254/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com