**更新 (2012.12.13) - 添加示例代码、输入格式、输出示例
我已经为此奋斗了几天,现在,我已经没有想法了。我已经针对多个 XLSX 文件成功地测试了一个脚本(并且可以稍后上传)。我有连接字符串功能,解析我需要的数据等......
问题是当我尝试处理我的输入文件(从第三方报告应用程序生成)时,不会从工作表中读取数据。
如果我在 Excel 中打开并保存输入文件(没有格式更改、没有数据输入/删除、根本没有修改),那么输入文件将处理和解析所有数据。
我尝试在连接字符串中使用多个“扩展属性”设置,但无济于事,包括 HDR=Yes/No 和 IMEX=1。
以前有人见过这样的吗?
#inputFile_original.xlsx will not parse the data from the worksheet
#inputFile_original_reSaved.xlsx parses the data without any issues
$fileName = "inputFile_original.xlsx"
#$fileName = "inputFile_original_reSaved.xlsx"
$filePath = ".\OLEDB\test\"
#Build the connection string
$ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
$ConnectionString += (Join-Path -Path $filePath -ChildPath $fileName)
$ConnectionString += ";OLE DB Services=-4;Extended Properties="
$ConnectionString += '"Excel 12.0 Xml;HDR=YES;IMEX=1";'
$conn = New-Object System.Data.OleDb.OleDbConnection($ConnectionString)
$conn.Open()
$tables = $conn.GetOleDbSchemaTable([System.Data.OleDb.OleDbSchemaGuid]::tables,$null)
$cmd = New-Object System.Data.OleDb.OleDbCommand("Select * FROM [$($tables.rows[0].TABLE_NAME)]",$conn)
$da = New-Object System.Data.OleDb.OleDbDataAdapter($cmd)
$ds = New-Object System.Data.DataSet
$da.Fill($ds)
#Output the data to the console
$ds.tables
此外,输入文件的格式不是很容易使用的布局。同样,由于是从第三方应用程序生成的。
有空行,标题行不是从第 1 行开始。
ABCDEF -------------------------------------------------- ---------------------- 01 | 报告标题 02 | 03 | ColHeader1 ColHeader2 ColHeader3 ColHeader4 ColHeader5 ColHeader6 04 | 数据 数据 数据 数据 数据 数据 05 | 数据 数据 数据 数据 数据 数据 06 | 数据 数据 数据 数据 数据 数据 07 | 数据 数据 数据 数据 数据 数据 08 | 数据 数据 数据 数据 数据 数据 09 | 10 | 总计:5
我收到的输出如下所示。
(一)原始文件
报告标题: F2: F3: F4: F5: F6: 报告标题:ColHeader1 F2: F3: F4: F5: F6:
(B) 重新保存文件
报告标题: F2: F3: F4: F5: F6: 报告标题:ColHeader1 F2 : ColHeader2 F3 : ColHeader3 F4 : ColHeader4 F5 : ColHeader5 F6 : ColHeader6 报告标题:数据 F2:数据 F3:数据 F4:数据 F5:数据 F6:数据 报告标题:数据 F2:数据 F3:数据 F4:数据 F5:数据 F6:数据 报告标题:数据 F2:数据 F3:数据 F4:数据 F5:数据 F6:数据 报告标题:数据 F2:数据 F3:数据 F4:数据 F5:数据 F6:数据 报告标题:数据 F2:数据 F3:数据 F4:数据 F5:数据 F6:数据 报告标题: F2: F3: F4: F5: F6: 报告标题:总计:5 F2: F3: F4: F5: F6: