C#把excel 的数据导入sqlserver

C#把excel 的数据导入sqlserver excel_to_sqlserver

前端

复制代码
<h1>Upload Excel File</h1>
<input type="file" id="fileInput" />
<button onclick="uploadFile()">Upload</button>
<script>
    function uploadFile() {
        var input = document.getElementById('fileInput');
        var file = input.files[0];

        if (file) {
            var formData = new FormData();
            formData.append("excelFile", file);

            fetch('/Home/uploadExcel', {
                method: 'POST',
                body: formData
            })
                .then(response => {
                    if (response.ok) {
                        alert('Excel file uploaded successfully.');
                    } else {
                        alert('Failed to upload Excel file.');
                    }
                })
                .catch(error => {
                    console.error('Error:', error);
                });
        } else {
            alert('Please select an Excel file to upload.');
        }
    }
</script>

后端

cs 复制代码
     // 连接字符串
        string connectionString = "Data Source=.;Initial Catalog=pigdb;Integrated Security=True";
        public void UploadExcel(IFormFile excelFile)
        {
            if (excelFile == null || excelFile.Length == 0)
            {
                BadRequest("Excel file is required.");
                return;
            }
            // 上传文件到指定目录
            var filePath = Path.Combine(Directory.GetCurrentDirectory(), "pigdata.xlsx");
            using (var fileStream = new FileStream(filePath, FileMode.Create))
            {
                excelFile.CopyTo(fileStream);
            }

            // 获取已上传的 Excel 文件的 FileInfo
            FileInfo uploadedFileInfo = new FileInfo(filePath);
            // 读取 Excel 文件
            FileInfo file = new FileInfo(filePath);
            using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read))
            {
                IWorkbook workbook = new XSSFWorkbook(fileStream);
                ISheet sheet = workbook.GetSheetAt(0);
                DataTable dt = new DataTable();

                // 读取表头
                IRow headerRow = sheet.GetRow(0);
                foreach (ICell headerCell in headerRow)
                {
                    dt.Columns.Add(headerCell.ToString());
                }

                // 读取数据行
                for (int i = (sheet.FirstRowNum + 1); i <= sheet.LastRowNum; i++)
                {
                    IRow row = sheet.GetRow(i);
                    DataRow dataRow = dt.NewRow();

                    for (int j = row.FirstCellNum; j < headerRow.LastCellNum; j++)
                    {
                        if (row.GetCell(j) != null)
                        {
                            dataRow[j] = row.GetCell(j).ToString();
                        }
                    }

                    dt.Rows.Add(dataRow);
                }        // 导入数据到 SQL Server
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    connection.Open();
                    using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection))
                    {
                        bulkCopy.DestinationTableName = "pigdata";
                        foreach (DataColumn col in dt.Columns)
                        {
                            bulkCopy.ColumnMappings.Add(col.ColumnName, col.ColumnName);
                        }

                        bulkCopy.WriteToServer(dt);
                    }
                }
            }

            }
相关推荐
津津有味道2 小时前
ISO18000-6C协议UHF6C超高频RFID读写C#源码
c#·uhf6c·超高频·iso18000-6c
白雪公主的后妈2 小时前
Auto CAD二次开发——创建圆弧对象
c#·cad二次开发·创建圆弧对象
njsgcs3 小时前
读取文件夹内的pdf装换成npg给vlm分类人工确认然后填入excel vlmapi速度挺快 qwen3-vl-plus webbrowser.open
分类·pdf·excel
星空的资源小屋4 小时前
Tuesday JS,一款可视化小说编辑器
运维·网络·人工智能·编辑器·电脑·excel
weixin_307779135 小时前
C#程序实现将MySQL的存储过程转换为Azure Synapse Dedicated SQL Pool的T-SQL存储过程
c#·自动化·云计算·运维开发·azure
sinat_375112265 小时前
abap 通用发送邮件程序(获取alv数据,带excel附件)
excel·sap·abap·邮件
忘忧记5 小时前
Excel拆分和合并优化版本
windows·microsoft·excel
牵牛老人5 小时前
Qt 中如何操作 Excel 表格:主流开源库说明介绍与 QXlsx 库应用全解析
qt·开源·excel
十碗饭吃不饱6 小时前
RuoYi/ExcelUtil修改(导入excel表时,表中字段没有映射上数据库表字段)
数据库·windows·excel
"菠萝"6 小时前
C#知识学习-018(方法参数传递)
学习·c#·1024程序员节