Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用C#将数据插入excel工作表?_C#_Excel - Fatal编程技术网

如何使用C#将数据插入excel工作表?

如何使用C#将数据插入excel工作表?,c#,excel,C#,Excel,我想从字符串数组创建新的excel工作表并将数据插入其中。我使用以下代码创建,现在我想插入数据 Excel.Application xlApp; Excel.Workbook xlWorkBook; Excel.Worksheet xlWorkSheet; object misValue = System.Reflection.Missing.Value; xlApp = new Excel.

我想从字符串数组创建新的excel工作表并将数据插入其中。我使用以下代码创建,现在我想插入数据

    Excel.Application xlApp;
            Excel.Workbook xlWorkBook;
            Excel.Worksheet xlWorkSheet;
            object misValue = System.Reflection.Missing.Value;
            xlApp = new Excel.Application();
            //xlApp = new Excel._Application.ApplicationClass();
            xlWorkBook = xlApp.Workbooks.Add(misValue);

            xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
            xlWorkSheet.Cells[1, 1] = "http://csharp.net-informations.com";

            xlWorkBook.SaveAs("csharp-Excel.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
            xlWorkBook.Close(true, misValue, misValue);
            xlApp.Quit();

            releaseObject(xlWorkSheet);
            releaseObject(xlWorkBook);
            releaseObject(xlApp);
}
    private void releaseObject(object obj)
        {
            try
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
                obj = null;
            }
            catch (Exception ex)
            {
                obj = null;
                MessageBox.Show("Exception Occured while releasing object " + ex.ToString());
            }
            finally
            {
                GC.Collect();
            }
        }
private void ExportToExcel(字符串文件名,DataGridView dgv)//使用给定文件名将给定的DataGridView导出到Excel
{
Excel.applicationxlapp;
Excel.工作簿;
Excel工作表;
对象错误值=System.Reflection.Missing.Value;
xlApp=new Excel.Application();
xlWorkBook=xlApp.Workbooks.Add(错误值);
xlWorkSheet=(Excel.Worksheet)xlWorkBook.Worksheets.get_项(1);
int i=0;
int j=0;
DataTable dtExcelTable=GetDataTableForExcel(dgv);
对于(i=0;i
调用COM方法非常慢。如果您计划插入大量数据,我建议您获取所需的整个范围,设置所有值,然后重新添加:

var range = xlWorkSheet.get_Range[firstCell, lastCell]; // or string range
var data = (object[,])range.get_Value(XlRangeValueDataType.xlRangeValueDefault);
// Set data here. Remember it's 1 based index, and row (y component) first
range.set_Value(data);

此方法将数据从网格导出到excel,但您可以为useGetDataTableForExcel(dgv)修改它,我发现此错误。如何调用这个方法呢?它有两个参数,它需要为excel文件指定一个文件名。GetDataTableForExcel(字符串文件名,DataGridView dgv)
var range = xlWorkSheet.get_Range[firstCell, lastCell]; // or string range
var data = (object[,])range.get_Value(XlRangeValueDataType.xlRangeValueDefault);
// Set data here. Remember it's 1 based index, and row (y component) first
range.set_Value(data);