Initial commit

This commit is contained in:
2026-04-23 21:38:24 -04:00
commit 63e12a9636
1762 changed files with 1672620 additions and 0 deletions
+72
View File
@@ -0,0 +1,72 @@
using ExcelDataReader;
using System.Text;
// Register encoding provider for older Excel formats
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
string filePath = @"Y:\PCC\Quickbooks\Online\Customers.xls";
try
{
Console.WriteLine($"Inspecting file: {filePath}");
Console.WriteLine($"File size: {new FileInfo(filePath).Length / 1024} KB");
Console.WriteLine();
using (var stream = File.Open(filePath, FileMode.Open, FileAccess.Read))
{
// Auto-detect format (.xls or .xlsx)
using (var reader = ExcelReaderFactory.CreateReader(stream))
{
// Read the first worksheet
reader.Read(); // Move to first row (headers)
// Get column count
int columnCount = reader.FieldCount;
Console.WriteLine($"Total columns: {columnCount}");
// Count total rows
int rowCount = 1; // We're already on row 1
while (reader.Read())
{
rowCount++;
}
Console.WriteLine($"Total rows: {rowCount}");
Console.WriteLine();
// Reset to beginning to read headers and data
reader.Reset();
reader.Read(); // Move to first row (headers)
// Read and display headers
Console.WriteLine("=== HEADERS (Row 1) ===");
var headers = new string[columnCount];
for (int col = 0; col < columnCount; col++)
{
headers[col] = reader.GetValue(col)?.ToString() ?? $"Column{col + 1}";
Console.WriteLine($"Column {col + 1}: {headers[col]}");
}
Console.WriteLine();
// Read and display sample data (row 2)
Console.WriteLine("=== SAMPLE DATA (Row 2) ===");
if (reader.Read()) // Move to second row
{
for (int col = 0; col < columnCount; col++)
{
var value = reader.GetValue(col)?.ToString() ?? "(empty)";
Console.WriteLine($"{headers[col]}: {value}");
}
}
else
{
Console.WriteLine("No data rows found (only headers or empty file)");
}
}
}
}
catch (Exception ex)
{
Console.WriteLine($"ERROR: {ex.GetType().Name}");
Console.WriteLine($"Message: {ex.Message}");
Console.WriteLine($"Stack: {ex.StackTrace}");
}