gpt4 book ai didi

c# - 如何定义数据类型?

转载 作者:行者123 更新时间:2023-11-30 17:00:34 24 4
gpt4 key购买 nike

我必须创建一个大的 XLSX 文件。我使用 OpenXmlWriter 尽可能快地完成任务。文件已正确创建,但我无法更改字段的数据类型。它始终是标准类型,我想对其中一些使用数字格式。

我尝试了很多方法,但没有一个奏效(Cell DataType,带有属性,......)。

这是一个例子:

SpreadsheetDocument fichier_excel = SpreadsheetDocument.Create(chemin + NomFichier, SpreadsheetDocumentType.Workbook);

fichier_excel.AddWorkbookPart();
WorksheetPart wsp = fichier_excel.WorkbookPart.AddNewPart<WorksheetPart>();

OpenXmlWriter writer = OpenXmlWriter.Create(wsp);
writer.WriteStartElement(new Worksheet());
writer.WriteStartElement(new SheetData());

oxa = new List<OpenXmlAttribute>();
oxa.Add(new OpenXmlAttribute("r", null, "1"));
writer.WriteStartElement(new Row(), oxa);

oxa = new List<OpenXmlAttribute>();
oxa.Add(new OpenXmlAttribute("t", null, "str"));
writer.WriteStartElement(new Cell(), oxa);
writer.WriteElement(new CellValue("10001"));
writer.WriteEndElement();

writer.WriteEndElement();

writer.WriteEndElement();

writer.Close();

writer = OpenXmlWriter.Create(fichier_excel.WorkbookPart);
writer.WriteStartElement(new Workbook());
writer.WriteStartElement(new Sheets());

writer.WriteElement(new Sheet()
{
Name = "Inventaire",
SheetId = 1,
Id = fichier_excel.WorkbookPart.GetIdOfPart(wsp)
});

writer.WriteEndElement();

writer.WriteEndElement();
writer.Close();
writer.Dispose();

fichier_excel.Close();
fichier_excel.Dispose();

最佳答案

要使用数字类型,请设置 Cell 对象的 DataType 属性。

 Cell cell = new Cell();
cell.DataType = CellValues.Number;
cell.CellValue = new CellValue("100");

您还需要在下一行发表评论:

 oxa.Add(new OpenXmlAttribute("t", null, "str"));

我也有newCell.StyleIndex = numberIndexStyle;

为了正确显示和格式化数字,您需要描述 cellformat 和 numberformat:

  uint iExcelIndex = 164;
NumberingFormat nformatForcedText = new NumberingFormat
{
NumberFormatId = UInt32Value.FromUInt32(iExcelIndex++),
FormatCode = StringValue.FromString("0.00E+00 ")
};
CellFormat cellFormat1 = new CellFormat()
{
NumberFormatId = 165U,
ApplyNumberFormat = true
};
NumberingFormats numberingFormats = new NumberingFormats();
numberingFormats.Append(nformatForcedText);
numberingFormats.Count = UInt32Value.FromUInt32( (uint)numberingFormats.ChildElements.Count);
CellFormats cellFormats1 = new CellFormats() {};
cellFormats1.Append(cellFormat1 );
cellFormats1.Count = UInt32Value.ToUInt32((uint) cellFormats1.ChildElements.Count);
Stylesheet StyleSheet = new Stylesheet();
StyleSheet.Append(cellFormats1);
StyleSheet.Append(numberingFormats);

WorkbookStylesPart stylesPart = workbookPart.AddNewPart<WorkbookStylesPart>();
stylesPart.Stylesheet = StyleSheet;
stylesPart.Stylesheet.Save();

关于c# - 如何定义数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22069425/

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