2017-07-12 83 views
0

私は、ドロップダウンリストを作成しようとしています、私はC#Excelのドロップダウンリスト

を作成し、このサンプルコードを実行すると私はソロ

を飛んでい従うことと同様のサンプルコードやドキュメントを見つけるのいずれかの運を持っていませんでした

static void Main(string[] args) 
    { 

     using (FileStream filename = new FileStream(@"INSERTYOUROWNPATH.xlsx", FileMode.Create)) 
     { 

      var workbook = new XSSFWorkbook(); 

      XSSFSheet xsheet = (XSSFSheet)workbook.CreateSheet("Validation"); 

      CT_DataValidation valid = new CT_DataValidation(); 
      valid.showDropDown = true; 
      valid.allowBlank = true; 

      var constraint = new XSSFDataValidationConstraint(new string[] { "0064", "0061" }); //to be used in list 
      var range = new CellRangeAddressList(11, 14, 13, 13); //apply to row 12:14 starting at column N finishing at column N 
      var addingconstraint = new XSSFDataValidation(constraint, range, valid); 

      addingconstraint.EmptyCellAllowed = true; 
      addingconstraint.SuppressDropDownArrow = false; 
      xsheet.AddValidationData(addingconstraint); 

      workbook.Write(filename); 

     } 
    } 

私はスプレッドシートを開いたとき、私は次のエラーを取得:

あなたは は我々と同じくらいを回復しようとするときに使用しますか 『Validations.xlsx「我々は、中、一部のコンテンツに問題を発見しました』できますか?あなたがtを信じるなら修復されたパート:XMLエラーと/xl/worksheets/sheet1.xml一部:彼このワークブックのソース は、「

は、それから私は、次の修復メッセージを取得する」[はい]をクリックします。 Load エラー。行1列684"

私が手にしてもらえ、これは?

答えて

0

あなたの問題を失敗しているところにでいくつかの洞察は、データ検証やデータ制約についてthis問題に非常に似ているように思える。

XSSFDataValidation dataValidation = null; 
XSSFDataValidationConstraint dvConstraint = null; 
XSSFDataValidationHelper validationHelper = null; 

int DVRowLimit = (Int16.MaxValue); 
XSSFCellStyle numberCellStyle = (XSSFCellStyle)workbook.CreateCellStyle(); 
XSSFDataFormat numberDataFormat = (XSSFDataFormat)workbook.CreateDataFormat(); 
numberCellStyle.SetDataFormat(numberDataFormat.GetFormat("#,###,###")); 


CellRangeAddressList cellRangeFieldsType1 = new CellRangeAddressList(1, DVRowLimit, headerCount, headerCount); 
dvConstraint = (XSSFDataValidationConstraint)validationHelper.CreateintConstraint(OperatorType.BETWEEN, "0", Int64.MaxValue.ToString()); 
dataValidation = (XSSFDataValidation)validationHelper.CreateValidation(dvConstraint, cellRangeFieldsType1); 
dataValidation.ShowErrorBox = true; 
dataValidation.SuppressDropDownArrow = true; 
dataValidation.ErrorStyle = 0; 
dataValidation.CreateErrorBox("InvalidValue", "Number Should be a integer."); 
dataValidation.ShowErrorBox = true; 
dataValidation.CreatePromptBox("Number Data Validation", "Enter Number."); 
dataValidation.ShowPromptBox = true; 
sheet.AddValidationData(dataValidation); 
sheet.SetDefaultColumnStyle(column, numberCellStyle); 
関連する問題