장비목록에서 엑셀 가져올때 오류 처리 작업

장비목록 디비 기록시 팝업 창 추가
장비목록에서 날짜를 역정렬 하도록 수정
This commit is contained in:
chikyun.kim
2018-09-17 16:39:34 +09:00
parent 650ec72616
commit c209a974c0
9 changed files with 252 additions and 149 deletions

View File

@@ -96,46 +96,98 @@ namespace FEQ0000
}
private void button1_Click(object sender, EventArgs e)
{
if(textBox1.Text.isEmpty())
{
FCOMMON.Util.MsgE("파일을 선택하세요");
textBox1.Focus();
return;
}
if(!System.IO.File.Exists(textBox1.Text))
{
FCOMMON.Util.MsgE("입력하신 파일이 존재하지 않습니다.");
textBox1.Focus();
textBox1.SelectAll();
return;
}
dtExcel.Columns.Clear();
dtExcel.Rows.Clear();
dtExcel.AcceptChanges();
libxl.Book book;// = new libxl.BinBook();
book = new libxl.XmlBook();
book.setKey("Amkor Technology korea, Inc", "windows-282b2b0800c5e0016bb06a6fafjfd6o8");
book.load(textBox1.Text);
try
{
book.load(textBox1.Text);
}catch (Exception ex)
{
FCOMMON.Util.MsgE(ex.Message);
return;
}
var sheet = book.getSheet(0);
int sheetNum = (int)numericUpDown1.Value;
if (sheetNum >= book.sheetCount())
{
FCOMMON.Util.MsgE("입력한 시트 번호는 존재하지 않습니다.");
book = null;
return;
}
var sheet = book.getSheet(sheetNum);
var MaxRow = sheet.lastRow();
var MinRow = sheet.firstRow();
var MaxCol = sheet.lastCol();
var MinCol = sheet.firstCol();
List<string> cols = new List<string>();
for (int r = MinRow; r <= MaxRow; r++)
{
DataRow dr = null;
if (r > 0) dr = dtExcel.NewRow();
for (int c = sheet.firstCol(); c <= sheet.lastCol(); c++)
bool firstRow = true;
try{
for (int r = MinRow; r <= MaxRow; r++)
{
var strVallue = sheet.readStr(r, c);
if (r == 0)
DataRow dr = null;
if (firstRow ==false) dr = dtExcel.NewRow();
Boolean nullColumn = false;
for (int c = MinCol; c <= MaxCol; c++)
{
cols.Add(strVallue);
this.dtExcel.Columns.Add(strVallue);
}
else
{
if (!cols[c].isEmpty())
dr[cols[c]] = strVallue;
var strVallue = sheet.readStr(r, c);
if (strVallue.isEmpty() && c == MinCol)
{
//첫줄 첫행이 빈값이면 처리하지 않는다.
nullColumn = true;
break;
}
if (firstRow)
{
cols.Add(strVallue);
this.dtExcel.Columns.Add(strVallue);
}
else
{
if (!cols[c].isEmpty())
dr[cols[c]] = strVallue;
}
}
if (nullColumn) continue; //줄처리를 못한 경우 넘어감
if (firstRow) firstRow = false;
if (dr != null) dtExcel.Rows.Add(dr);
}
if (dr != null) dtExcel.Rows.Add(dr);
dtExcel.AcceptChanges();
}
catch(Exception ex)
{
FCOMMON.Util.MsgE("불러오는 중 오류 발생\n" + ex.Message);
}
dtExcel.AcceptChanges();
//
book = null;
this.bs.DataSource = dtExcel;
this.dataGridView1.DataSource = dtExcel;
this.bn.BindingSource = this.bs;
if(this.bs.Count < 1)
{
FCOMMON.Util.MsgE("입력된 자료가 없습니다.\n\n지정된 엑셀의 1번째 칸에 값이 없다면 입력되지 않습니다.");
}
}
private void button2_Click(object sender, EventArgs e)
@@ -178,7 +230,24 @@ namespace FEQ0000
private void button3_Click(object sender, EventArgs e)
{
if(dtExcel == null || dtExcel.Rows.Count < 1)
{
FCOMMON.Util.MsgE("등록 가능한 자료가 없습니다.");
return;
}
System.Text.StringBuilder sb = new StringBuilder();
sb.AppendLine("다음 자료를 추가하시겠습니까?");
sb.AppendLine();
sb.AppendLine("등록일 : " + dateTimePicker1.Value.ToShortDateString());
sb.AppendLine();
sb.AppendLine("해당 일자에 등록된 자료가 있다면 삭제 됩니다.");
sb.AppendLine("'저장 완료' 메세지가 나올때 까지 기다려 주세요.");
sb.AppendLine();
sb.AppendLine("실행 하려면 '예' 를 누르세요");
var dlg = FCOMMON.Util.MsgQ(sb.ToString());
if (dlg != System.Windows.Forms.DialogResult.Yes) return;
//라인코드를 읽어서 값을 기록해준다.
var taLine = new dsEQTableAdapters.LineCodeTableAdapter();
var lineTd = taLine.GetData();
@@ -279,8 +348,7 @@ namespace FEQ0000
break;
}
dt.AcceptChanges();
FCOMMON.Util.MsgE("test");
FCOMMON.Util.MsgI("Save OK");
}
}
}