Excel gravação one-time grandes quantidades de dados de forma rápida

///


/// Excel gravação one-time grandes quantidades de dados de forma rápida
///

/// path livro
/// para escrever o nome da planilha
private void WriteExcel (path String, String SheetName)
{
Microsoft.Office.Interop.Excel.Application nova nova Microsoft.Office.Interop.Excel.Application App = () ;
app.Visible = false; // não mostram EXCEL
app.DisplayAlerts = false; // nenhuma mensagem
app.ScreenUpdating = false; // parar de atualizar a tela, velocidade de
pastas de trabalho wbs = app.Workbooks; // obtém o livro
_Workbook wb = wbs.Open (caminho); // abrir o arquivo
Folhas shs = wb.Worksheets; Sheets arquivo //
System.Data.DataTable table = GetDataTable (); // chama GetDataTable () para obter a tabela de memória DataTable
CopyDataToSheet ( mesa, shs [SheetName]); // chamar o método, os dados são escritos em DataTable na Folha

        wb.Save(); //保存
        wb.Close(); //关闭工作薄
        app.Quit(); //关闭EXCEL
        MessageBox.Show("OK");
    }

    //快速写入(先写入数组,然后一次性将数组写入到EXCEL中)
    private void CopyDataToSheet(System.Data.DataTable Table, _Worksheet Sheet)
    {
        int colCount, rowCount;
        colCount = Table.Columns.Count;
        rowCount = Table.Rows.Count;
        Range range;

        //写入标题行
        range = Sheet.get_Range("A1", Missing.Value);
        range = range.get_Resize(1, colCount);
        object[,] headerData = new object[1, colCount];
        for (int iCol = 0; iCol < colCount; iCol++)
        {
            headerData[0, iCol] = Table.Columns[iCol].ColumnName;
        }
        range.set_Value(Missing.Value, headerData);

        //写入数据行
        range = Sheet.get_Range("A2", Missing.Value);
        range = range.get_Resize(rowCount, colCount);
        object[,] cellData = new object[rowCount, colCount];
        for (int iRow = 0; iRow < rowCount; iRow++)
        {
            for (int iCol = 0; iCol < colCount; iCol++)
            {
                cellData[iRow, iCol] = Table.Rows[iRow][iCol].ToString();
            }
        }
        range.set_Value(Missing.Value, cellData);
    }

Acho que você gosta

Origin www.cnblogs.com/zhujie-com/p/12657139.html
Recomendado
Clasificación