Excelセルをトラバースしてデータを取得したいがセルは正規ではない。たとえば、複数の行でマージされた赤いセル。すべての行をトラバースする方法は?私は次のようにデータを取得するために、行をトラバースしたいC#でデータを取得するためにExcelセルをトラバースしたい
:
- 081701-B-AAAA-yと;
- 081702-c-aaaa-y;
- 081704-d-aaaa-y;
- 081703-e-ffff-k;
- ...
は、それを達成するために、何か良い方法はありますか?
Excelセルをトラバースしてデータを取得したいがセルは正規ではない。たとえば、複数の行でマージされた赤いセル。すべての行をトラバースする方法は?私は次のようにデータを取得するために、行をトラバースしたいC#でデータを取得するためにExcelセルをトラバースしたい
:
は、それを達成するために、何か良い方法はありますか?
私はEPPlusをお勧めします:http://epplus.codeplex.com/
var package = new ExcelPackage(new FileInfo("sample.xlsx"));
ExcelWorksheet workSheet = package.Workbook.Worksheets[1];
for (int i = workSheet.Dimension.Start.Column;
i <= workSheet.Dimension.End.Column;
i++)
{
for (int j = workSheet.Dimension.Start.Row;
j <= workSheet.Dimension.End.Row;
j++)
{
object cellValue = GetCellValueFromPossiblyMergedCell(workSheet,i, j);
}
}
を合併細胞の場合、私はあなたがその左上のセル参照することにより、マージされたセルを参照してください信じています。次のヘルパーメソッドは、マージされたセルの値を取得します。供給
static string GetCellValueFromPossiblyMergedCell(ExcelWorksheet wks, int row, int col)
{
var cell = wks.Cells[row, col];
if (cell.Merge) //(1.)
{
var mergedId = wks.MergedCells[row, col]; //(2.)
return wks.Cells[mergedId].First().Value.ToString(); //(3.)
}
else
{
return cell.Value.ToString();
}
}
ヘルパーメソッド:Excelを解析するためにHow to use Epplus with cells containing few rows
、.NETフレームワーク内での良好な実装がすでにあります。私はマージされたセルの解析については正確に試していませんが、あなたはそれを使って遊んでみることができます。その別の投稿:http://stackoverflow.com/questions/5282999/reading-csv-file-and-storing-values-into-an-array/33796861#33796861。 パーサの詳細は、http://codeskaters.blogspot.ae/2015/11/c-easiest-csv-parser-built-in-net.html – Habeeb
@Habeeb、ありがとうございます!あまりにも遅くあなたに返信して申し訳ありません!私はリンクを開くことができません "codeskaters.blogspot.ae/2015/11/..."、あなたは私を助けることができますか? – Superman