gpt4 book ai didi

c# - excel xlsx文件解析——使用koogra

转载 作者:太空狗 更新时间:2023-10-30 01:07:05 27 4
gpt4 key购买 nike

在使用 git hub 尝试了几个包,并尝试解析/处理这个相当大的 excel 文档之后。我尝试的每一种方法都会在 out of memory 时抛出异常。

我又在 google ing 上找到了这个名为 koogra 的 GNU 库,它似乎是我认为适合这份工作的唯一一个库,不能太在意并继续搜索,因为我没有时间完成该项目的这一部分。

我现在得到的代码正在通过“内存不足”问题的部分,

所以唯一剩下的就是如何正确解析 Excel 文档,以便可以提取某种字典集合键是一列而值是另一列。

this is the file in question

这是我到目前为止的代码

var path = Path.Combine(Environment.CurrentDirectory, "tst.xlsx");
Net.SourceForge.Koogra.Excel2007.Workbook xcel = new Net.SourceForge.Koogra.Excel2007.Workbook(path);
var ss = xcel.GetWorksheets();

最佳答案

更多人找到了它......谷歌ing......第一行用于 2007 (xlsx)

第二行是xls版本

        Net.SourceForge.Koogra.IWorkbook genericWB = Net.SourceForge.Koogra.WorkbookFactory.GetExcel2007Reader("tst.xlsx");

//genericWB = Net.SourceForge.Koogra.WorkbookFactory.GetExcelBIFFReader("some.xls");

Net.SourceForge.Koogra.IWorksheet genericWS = genericWB.Worksheets.GetWorksheetByIndex(0);

for (uint r = genericWS.FirstRow; r <= genericWS.LastRow; ++r)
{
Net.SourceForge.Koogra.IRow row = genericWS.Rows.GetRow(r);

for (uint c = genericWS.FirstCol; c <= genericWS.LastCol; ++c)
{
// raw value
Console.WriteLine(row.GetCell(c).Value);

// formatted value
Console.WriteLine(row.GetCell(c).GetFormattedValue());
}
}

我希望我能帮助其他遇到同样“内存不足”问题的人......'享受

一个小更新上面的代码

好的..我已经玩了一点,就它与文件内容有关而言该图表根据Unique IP 排名,当前代码为

            //place source file within your current:
//project directory\bin\debug and you should find extracted file next to the source file
var pathtoRead = Path.Combine(Environment.CurrentDirectory, "tst.xlsx");
var pathtoWrite = Path.Combine(Environment.CurrentDirectory, "tst.txt");

Net.SourceForge.Koogra.IWorkbook genericWB = Net.SourceForge.Koogra.WorkbookFactory.GetExcel2007Reader(pathtoRead);
Net.SourceForge.Koogra.IWorksheet genericWS = genericWB.Worksheets.GetWorksheetByIndex(0);
StringBuilder SbXls = new StringBuilder();
for (uint r = genericWS.FirstRow; r <= genericWS.LastRow; ++r)
{
Net.SourceForge.Koogra.IRow row = genericWS.Rows.GetRow(r);
string LineEnding = string.Empty;
for (uint ColCount = genericWS.FirstCol; ColCount <= genericWS.LastCol; ++ColCount)
{

var formated = row.GetCell(ColCount).GetFormattedValue();
if (ColCount == 1)
LineEnding = Environment.NewLine;
else if (ColCount == 0)
LineEnding = "\t";
if (ColCount > 1 == false)
SbXls.Append(string.Concat(formated, LineEnding));
}
}
File.WriteAllText(pathtoWrite, SbXls.ToString());

关于c# - excel xlsx文件解析——使用koogra,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13608383/

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