我对诉诸StackOverflow以达到基本目的(似乎如此)表示仇恨,但我过去几小时一直在与微软交战,似乎正在打着死端。 我正试图读(大)Excel 2007+电子表格,谷歌已经向我通报说,使用开放Xml SDK是一种很受欢迎的选择。 因此,我打了枪,读了一些辅导,检查了微软自己的图书馆网页,而且根本没有。
我使用的是小幅测试电子表格,只有一栏数字和缩略语之一,随后将进行大规模测试。 我曾尝试过几个与我即将到任的节目类似的节目,其中没有一个读过数据。 下面的法典主要取自另一个似乎行之有效的StackOverflow法,对我来说不是这样。 我看上去的是,你用这个版本进行gu检查/点击/帮助,因为其伤势可能低于我今天写过的话。
static void ReadExcelFileSAX(string fileName)
{
using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(fileName, true))
{
WorkbookPart workbookPart = spreadsheetDocument.WorkbookPart;
WorksheetPart worksheetPart = workbookPart.WorksheetParts.First();
OpenXmlPartReader reader = new OpenXmlPartReader(worksheetPart);
string text;
string rowNum;
while (reader.Read())
{
if (reader.ElementType == typeof(Row))
{
do
{
if (reader.HasAttributes)
{
rowNum = reader.Attributes.First(a => a.LocalName == "r").Value;
Console.Write("rowNum: " + rowNum); //we never even get here, I tested it with a breakpoint
}
} while (reader.ReadNextSibling()); // Skip to the next row
Console.ReadKey();
break; // We just looped through all the rows so no need to continue reading the worksheet
}
if (reader.ElementType == typeof(Cell))
{
}
if (reader.ElementType != typeof(Worksheet)) // Dont want to skip the contents of the worksheet
reader.Skip(); // Skip contents of any node before finding the first row.
}
reader.Close();
Console.WriteLine();
Console.ReadKey();
}
}
而另一方面,在使用开放Xml SDK(I)方面,是否有任何很好的替代办法?