从页面上导出数据到Excel中

 将页面中查询出来的数据导入到Excel中:  

string strExcelFileName = Path.GetTempPath() + fileName + DateTime.Now.ToString("yyyyMMddhhmmss") + ".xls";            
            //设置导出所有数据  
            //打开Microsoft.Jet.OleDb.4.0连接  
           string oldSTR = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + strExcelFileName + @";Extended ProPerties=""Excel 8.0;HDR=Yes;""";

           using (OleDbConnection oleDbConn = new OleDbConnection(oldSTR))
            {

                OleDbCommand oleDbCmd = new OleDbCommand();
                oleDbConn.Open();
                OleDbTransaction dbtran = oleDbConn.BeginTransaction();
                oleDbCmd.CommandType = CommandType.Text;
                oleDbCmd.Connection = oleDbConn;
                oleDbCmd.Transaction = dbtran;
                string sSql = "";

                try
                {
                    //dbtran.Begin();

                    #region 创建EXCEL
                    //写列名  
                    sSql = "CREATE TABLE sheet1(";

                    for (int i = 0; i < dt.Columns.Count; i++)
                    {

                        if (i < dt.Columns.Count - 1)
                        {
                            sSql += "[" + dt.Columns[i].ColumnName + "] Text(200),";
                        }
                        else
                        {
                            sSql += "[" + dt.Columns[i].ColumnName + "] Text(200))";
                        }
                    }

                    oleDbCmd.CommandText = sSql;
                    oleDbCmd.ExecuteNonQuery();

                    //写行数据   
                    for (int j = 0; j < dt.Rows.Count; j++)
                    {
                        sSql = " INSERT INTO sheet1 VALUES('";

                        for (int i = 0; i < dt.Columns.Count; i++)
                        {

                            if (i < dt.Columns.Count - 1)
                                sSql += dt.Rows[j][i].ToString() + "','";
                            else
                                try
                                {
                                    sSql += dt.Rows[j][i].ToString() + "')";
                                }
                                catch { sSql += "" + "')"; }
                        }
                        oleDbCmd.CommandText = sSql;
                        oleDbCmd.ExecuteNonQuery();
                    }
                    #endregion

                    dbtran.Commit();
                }
                catch (System.Exception ex)
                {
                    dbtran.Rollback();
                }
                finally
                {
                    //断开连接  
                    oleDbCmd.Dispose();
                    oleDbConn.Close();
                    oleDbConn.Dispose();
                }
                try
                {

                    using (FileStream fs = new FileStream(strExcelFileName, FileMode.OpenOrCreate))
                    {
                        System.IO.FileInfo file = new System.IO.FileInfo(strExcelFileName);
                        System.Web.HttpContext curContext = System.Web.HttpContext.Current;
                        //让用户输入下载的本地地址  
                        curContext.Response.Clear();
                        curContext.Response.Buffer = true;
                        curContext.Response.Charset = "gb2312";

                        curContext.Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpContext.Current.Server.UrlEncode(fileName) + ".xls");
                        curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
                        curContext.Response.ContentType = "application/ms-excel";

                        // 读取excel数据到内存  
                        byte[] buffer = new byte[fs.Length - 1];
                        fs.Read(buffer, 0, (int)fs.Length - 1);

                        // 写到aspx页面  
                        curContext.Response.BinaryWrite(buffer);
                        curContext.Response.Flush();
                        curContext.ApplicationInstance.CompleteRequest();


                        fs.Close();
                        fs.Dispose();

                        //删除临时文件  
                        File.Delete(strExcelFileName);
                    }
                }
                catch (Exception ex)
                {

                }
            }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Java页面数据导出Excel,可以使用Apache POI库。下面是一个简单的例子: 1. 导入POI库: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFWorkbook; ``` 2. 创建一个工作簿对象: ```java Workbook workbook = new XSSFWorkbook(); // XLSX格式 Workbook workbook = new HSSFWorkbook(); // XLS格式 ``` 3. 创建一个工作表对象: ```java Sheet sheet = workbook.createSheet("Sheet1"); ``` 4. 创建行和单元格,并为单元格设置值: ```java Row row = sheet.createRow(0); Cell cell = row.createCell(0); cell.setCellValue("Hello"); ``` 5. 将工作簿对象写入一个输出流: ```java OutputStream outputStream = new FileOutputStream("output.xlsx"); workbook.write(outputStream); workbook.close(); ``` 完整的例子代码如下: ```java import java.io.FileOutputStream; import java.io.OutputStream; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFWorkbook; public class ExcelExporter { public static void main(String[] args) throws Exception { Workbook workbook = new XSSFWorkbook(); // XLSX格式 // Workbook workbook = new HSSFWorkbook(); // XLS格式 Sheet sheet = workbook.createSheet("Sheet1"); Row row = sheet.createRow(0); Cell cell = row.createCell(0); cell.setCellValue("Hello"); OutputStream outputStream = new FileOutputStream("output.xlsx"); workbook.write(outputStream); workbook.close(); } } ``` 这个例子只是演示了如何将一个单元格的值写入Excel文件,你可以根据需要扩展代码,使它能够导出多个单元格、多个行和多个工作表。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值