Пример #1
0
 public Form1()
 {
     InitializeComponent();
     xlsxConvertor = new XLSXConvertor();
     xlsConvertor  = new XLSConvertor();
 }
Пример #2
0
        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);
        }