1

Excelシートに以下のような値があります。

ID
12_001
12_008
12_010

13_001

これらの値の最大値を見つける方法。「13_001」として結果が必要です。誰でも私を助けることができますか?

私はこのようにしてみました

string ExcelConnection = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source =" + Filepath + " ; Extended Properties='Excel 8.0;HDR=Yes;IMEX=1';";
OleDbDataAdapter Id = new OleDbDataAdapter("SELECT MAX(ID) FROM [Sheet1$A2:A4]", ExcelConnection);
DataSet id = new DataSet();
Id.Fill(id);
4

4 に答える 4

2
you can use the range if u need 

    range rng = new range; 
int64  dblMax =0; rng = Range("a1", Range("a65536").End(xlUp)) ;
dblMax = Application.WorksheetFunction.Max(rng) ;
return dblMax + 1 
于 2013-07-10T05:45:53.750 に答える
0

関数を送信できる場合は、これを使用できます

=MAX(INDEX(Name1!$C$2:$V$2000,0,MATCH(Overview!S$1,ID!$C$1:$V$1,0)))
于 2013-07-10T05:31:18.117 に答える
0

基本的に、文字列をテキストとして扱い、アルファベット順に降順に並べ替えてから、列 ID から最初のレコードを取得することで、目的の出力を取得できます。

以下のコードでそれを行う必要があります。

        string ExcelConnection = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source =" + Filepath + " ; Extended Properties='Excel 8.0;HDR=Yes;IMEX=1';";
        string Command = "SELECT ID FROM [Sheet1$]";

        try
        {
            OleDbConnection conn = new OleDbConnection(ExcelConnection);
            OleDbCommand cmd = new OleDbCommand();
            OleDbDataAdapter da = new OleDbDataAdapter();

            using (conn)
            {
                conn.Open();
                cmd = new OleDbCommand(Command, conn);
                da = new OleDbDataAdapter(cmd);


                DataSet id = new DataSet();
                da.Fill(id);

                DataTable idtable = id.Tables[0];
                idtable.DefaultView.Sort = idtable.Columns[0].ColumnName + " " + "DESC";
                idtable = idtable.DefaultView.ToTable();
                Console.WriteLine(idtable.Rows[0][0]);
                conn.Close();
            }
        }
        catch (Exception ex)
        {
        }
于 2013-07-10T06:09:35.747 に答える