public Form1() { InitializeComponent(); xlsxConvertor = new XLSXConvertor(); xlsConvertor = new XLSConvertor(); }
private void SaveExcel(DataSource data, string control, bool isTraditionalChinese) { int controlRowIndex, formatRowIndex, ignoreRowIndex; if (control == "SERVER") { controlRowIndex = data.startRow + 3; formatRowIndex = data.startRow + 2; ignoreRowIndex = data.startRow + 1; } else { controlRowIndex = data.startRow + 1; formatRowIndex = data.startRow + 2; ignoreRowIndex = data.startRow + 3; } IExcelConvertor convertor = data.extension == ".xlsx" ? xlsxConvertor : xlsConvertor; DataRow controlRow = data.source.Rows[controlRowIndex]; DataRow formatRow = data.source.Rows[formatRowIndex]; int rows = data.source.Rows.Count; int columns = data.source.Columns.Count; int offsetRow = data.startRow; int offsetCol = data.startCol + 1; convertor.CreateSheet("sheet1"); for (int i = data.startRow; i < rows; i++) { if (i == ignoreRowIndex) { offsetRow += 1; continue; } offsetCol = data.startCol + 1; for (int j = data.startCol + 1; j < columns; j++) { if (controlRow[j].ToString() != "") { string value = data.source.Rows[i][j].ToString(); if (isTraditionalChinese) { value = Microsoft.VisualBasic.Strings.StrConv(value, Microsoft.VisualBasic.VbStrConv.TraditionalChinese, 0); } try { if (i > data.startRow + 3 && value != "" && formatRow[j].ToString() == "int") { convertor.WriteCell(i - offsetRow, j - offsetCol, Convert.ToInt32(value)); } else { convertor.WriteCell(i - offsetRow, j - offsetCol, value); } } catch { convertor.WriteCell(i - offsetRow, j - offsetCol, value); } } else { offsetCol++; } } } convertor.SaveFile(exportPath + "\\" + data.name); }