旧的Excel格式下,设置文字上标会导致字号恢复成默认值?

如题,我在代码中设置文本框中字号为18。
然后我将第一个文字设置为上标,保存后,文本框中的文字字号变成了10。
此问题在旧版本的Excel(xls)中可以确认,如果是xlsx的话则没有问题。
可以在免费支持中解决这个问题吗?谢谢!
AsposeCellsTest_20230427.zip (5.8 MB)

@ztc001
We have opened the following new ticket(s) in our internal issue tracking system and will deliver their fixes according to the terms mentioned in Free Support Policies.

Issue ID(s): CELLSNET-53271

You can obtain Paid Support Services if you need support on a priority basis, along with the direct access to our Paid Support management team.

1 Like

@ztc001,

这是为了通知您,您的问题已经解决。 此增强/修复将包含在我们即将发布的 Aspose.Cells v23.5 中,计划于 2023 年 5 月上半月发布。下一个版本发布时,您将收到通知。

1 Like

The issues you have found earlier (filed as CELLSNET-53271) have been fixed in this update. This message was posted using Bugs notification tool by johnson.shi

@John.He
已确认上述问题在v23.5中已经被修复。非常感谢。
但同时发现另外一个问题:
如果一个文本框中有换行符(我这里使用的是vbLf),并设置字体和字号,那么只有第一行被正确设置。第二行好像变成系统默认字体和字号(导出格式为xls) 。
这个问题至少在v23.3中是不存在的。麻烦确认一下,谢谢!
AsposeCellsTest_20230512.zip (5.6 MB)

@ztc001,

我能够重现您提到的问题。 我发现在导出到 XLS 时,字体和字体大小并未设置为文本框中的所有行。

我们在内部问题跟踪系统中打开了以下新工单,并将相应地提供它们的修复。
问题 ID:CELLSNET-53357

一旦我们有更新,我们会通知您。

1 Like

@ztc001
请在设置属性后设置字体如下:

Dim font As Font = tb.Font
font.Size = 7
font.Name = "Meiryo UI"
tb.Font = font 
1 Like

@simon.zhao
非常感谢您提供的方案。
根据此页面显示的“ CELLSNET-53357 ---- Status : Won’t Fix”内容来看,此问题不会被修复,只能采用您提供的方案解决,是吧?

@ztc001,

你的理解是正确的。

@amjad.sahi @John.He
之前提供的方案确实可以解决字体设置问题。但如果我在设置字体之前,设置了上标,则以下写法会使上标设置被覆盖。

tb.Characters(0, 1).Font.IsSuperscript = True
Dim font As Font = tb.Font
font.Size = 7
font.Name = "Meiryo UI"
tb.Font = font 

如果将上标设置放在最后,是可以达到预想效果的,但现存系统中,这两处代码相距比较远的情况下,改动现有代码的风险还是比较大的。
不知道是否可以在产品层面修改此问题?谢谢

@ztc001
我们会研究如何只应用部分属性到文本框中所有的文本 。

1 Like

@ztc001
请使用方法 Shape.FormatCharacters() ,但是当前版本的这个方法有个bug, 我们会在下一个版本23.6中修复。
···C#
Workbook workbook = new Workbook();
TextBox tb = workbook.Worksheets[0].Shapes.AddTextBox(0, 0, 0, 0, 100, 100);
tb.Text = “sdfsdfsdfsdf\nsdfsdfsd”;

        tb.Characters(0, 1).Font.IsSuperscript = true;
        Aspose.Cells.Font font = tb.Font;


        font.Size = 7;
        font.Name = "Meiryo UI";
        StyleFlag flag = new StyleFlag();
        flag.FontSize = true;
        flag.FontName = true;
        tb.FormatCharacters(0, tb.Text.Length, font, flag);
        workbook.Save(dir + "dest.xlsx");
1 Like

The issues you have found earlier (filed as CELLSNET-53357) have been fixed in this update. This message was posted using Bugs notification tool by johnson.shi