datatable to excel

本文介绍了一种通过将数据逐行粘贴到Excel的方法,并提供了一个示例代码来展示如何使用C#实现这一过程。此外,还展示了如何利用StringBuilder类拼接字符串以及如何使用Excel对象模型操作单元格。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                一行一行zhantie 到excel
                Range rangeRowStart;
                int startColumnIndex = 25;
                int startRowIndex = 12;
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    string rowContent="";
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        rowContent = rowContent+dt.Rows[i][j].ToString() + "/t";
                    }
                    rangeRowStart = (Range)worksheet.Cells[startRowIndex + i, startColumnIndex];
                    System.Windows.Forms.Clipboard.SetDataObject(rowContent);
                    rangeRowStart.Select();
                    worksheet.Paste(rangeRowStart, false);
                    System.Windows.Forms.Clipboard.SetDataObject("");
                }

bianli
        public static void DataTabletoExcel(System.Data.DataTable tmpDataTable, Workbook xlBook, Microsoft.Office.Interop.Excel.Application xlApp, int rowIndex, int columnIndex)
        {
            if (tmpDataTable == null)
                return;
            Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)xlBook.ActiveSheet;

            foreach (DataColumn dc in tmpDataTable.Columns)
            {
                columnIndex++;
                xlApp.Cells[rowIndex, columnIndex] = dc.ColumnName;
            }
            for (int i = 0; i < tmpDataTable.Rows.Count; i++)
            {
                rowIndex++;
                columnIndex = 0;
                for (int j = 0; j < tmpDataTable.Columns.Count; j++)
                {
                    columnIndex++;
                    xlApp.Cells[rowIndex, columnIndex] = tmpDataTable.Rows[i][j].ToString();
                }
            }

            // worksheet.Cells[1, 1] 起始的?元格
            // worksheet.Cells[5, 5] 一直到5 5?个范?内的?元格
            //  "1,2,3" 是下拉菜?

            //worksheet.get_Range(worksheet.Cells[1, 1], worksheet.Cells[5, 5]).Validation.Add(Microsoft.Office.Interop.Excel.XlDVType.xlValidateList, Microsoft.Office.Interop.Excel.XlDVAlertStyle.xlValidAlertStop, Type.Missing, "1,2,3", Type.Missing);

            //xlBook.SaveCopyAs(strFileName);

        }


StringBuilder stringBuilder= new StringBuilder();
               
                 
                    foreach (DataColumn col in data.Columns)
                        stringBuilder= .Append(col.ColumnName + "/t");

                    stringBuilder= .AppendLine();
                foreach (DataRow row in data.Rows)
                {
                    foreach (DataColumn col in data.Columns)
                        stringBuilder.Append(row[col].ToString() + "/t");

                   stringBuilder.AppendLine();
                }
                System.Windows.Forms.Clipboard.SetDataObject("");
                // 放入剪切板
                System.Windows.Forms.Clipboard.SetDataObject(buffer.ToString());
                var range = (Excel.Range)xstSheet.Cells[1, 1];
                range.Select();
                xstSheet.Paste();
                // 清空剪切板
                System.Windows.Forms.Clipboard.SetDataObject("");


               StringBuilder stringBuilder = new StringBuilder();

                foreach (DataColumn col in dt.Columns)
                {
                    stringBuilder.Append(col.ColumnName + "/t");
                    stringBuilder.AppendLine();
                }

                foreach (DataRow row in dt.Rows)
                {
                    foreach (DataColumn col in dt.Columns)
                        stringBuilder.Append(row[col].ToString() + "/t");
                    stringBuilder.AppendLine();
                }
                System.Windows.Forms.Clipboard.SetDataObject("");
                System.Windows.Forms.Clipboard.SetDataObject(stringBuilder.ToString());
                System.Windows.Forms.Clipboard.SetDataObject(dt);
                Range range = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[1, 1];
                range.Select();
                worksheet.Paste(range, false);
                System.Windows.Forms.Clipboard.SetDataObject("");

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值