相关疑难解决方法(0)

EPPlus - LoadFromCollection - 文本转换为数字

我正在用C#编写一个需要导出List<MyObject>到Excel的程序,我正在使用EPPlus这样做.

我的挑战是我的对象有一个属性:

string Prop1 { get; set; }
Run Code Online (Sandbox Code Playgroud)

并且,我需要导出的值之一具有一个值,例如,其形式为Prop1 = "123E4".

挑战在于EPPlus LoadFromCollection方法将其导出到Excel,但Excel使用科学记数法(Outputted value = 1.23E+061230000)将其转换为数字.

我已经尝试将整个列设置为.Style.Numberformat.Format = "@"(以及我能想到的任何其他样式),我甚至尝试在LoadFromCollection调用方法之前和之后设置样式.

我也尝试在字符串前面添加一个'字符,但实际上该字符在该列中的每个单元格中保留,然后使得值不正确以进行分析.

我正在玩我的List转换为DataTable以便使用该LoadFromDataTable方法,但即使这似乎不起作用.

关于如何将其导出为纯文本的任何想法/建议

.net c# excel formatting epplus

5
推荐指数
1
解决办法
3684
查看次数

OpenXML Sax方法,用于快速将100K +行导出到Excel

我一直在努力提高写入xlsx的SAX方法的性能.我知道Excel中有1048576行的限制.我只打了几次这个限制.在大多数情况下,虽然我只写出大约125K到250K行(一个大数据集).我尝试过的代码似乎没有那么快,因为它会多次写入文件.我希望有一些缓存,但似乎现在代码工作的方式有太多的磁盘访问.

下面的代码类似于使用OpenXML和SAX模板,因为我使用ClosedXML写入文件,然后切换到SAX以获取大内容.尝试对这么多行使用ClosedXML时,内存会脱离图表.这就是我使用SAX的原因.

        int numCols = dt.Columns.Count;
        int rowCnt = 0;
        //for (curRec = 0; curRec < totalRecs; curRec++)
        foreach (DataRow row in dt.Rows)
        {
            Row xlr = new Row();

            //starting of new row.
            //writer.WriteStartElement(xlr);

            for (int col = 0; col < numCols; ++col)
            {
                Cell cell = new Cell();
                CellValue v = new CellValue(row[col].ToString());

                {
                    string objDataType = row[col].GetType().ToString();
                    if (objDataType.Contains(TypeCode.Int32.ToString()) || objDataType.Contains(TypeCode.Int64.ToString()))
                    {
                        cell.DataType = new EnumValue<CellValues>(CellValues.Number);
                        //cell.CellValue = new CellValue(row[col].ToString());
                        cell.Append(v);
                    }
                    else if (objDataType.Contains(TypeCode.Decimal.ToString()) || …
Run Code Online (Sandbox Code Playgroud)

c# xml excel sax openxml

4
推荐指数
1
解决办法
7245
查看次数

标签 统计

c# ×2

excel ×2

.net ×1

epplus ×1

formatting ×1

openxml ×1

sax ×1

xml ×1