代码草率了 2017-10-13 07:48 采纳率: 0%
浏览 1290

web查看服务器excel文件

存在项目中的excel文件 如何在web页面点击查看后 实现预览效果 但是不用下载 求解

  • 写回答

3条回答 默认 最新

  • 码云哥 2017-10-13 08:06
    关注

    ///
    /// 导出excel
    ///
    /// 读取文件路径
    /// 保存文件内容
    public static void ReadFile(string readFileName, string saveFileName)
    {
    Microsoft.Office.Interop.Excel.WorkbookClass wbclass;
    WorkbookClass wkTemp;
    Worksheet ws;
    Worksheet wsTemp;
    Microsoft.Office.Interop.Excel.Application excelApp;
    DirectoryInfo di = new DirectoryInfo(readFileName);

            //遍历文件夹            
            if (di.Exists)
            {
                foreach (FileInfo item in di.GetFiles("*.xls"))
                {
                    excelApp = new Microsoft.Office.Interop.Excel.Application();
                    object objOpt = System.Reflection.Missing.Value;
                    //item.FullName   读取execl文件
                    wbclass = (WorkbookClass)excelApp.Workbooks.Open(item.FullName, objOpt, false, objOpt, objOpt, objOpt, true, objOpt, objOpt, true, objOpt, objOpt, objOpt, objOpt, objOpt);
                    ws = (Worksheet)wbclass.Worksheets.get_Item(1);
                    //取得总记录行数   (包括标题列)
                    int rowsint = ws.UsedRange.Cells.Rows.Count; //得到行数
                    //int columnsint = mySheet.UsedRange.Cells.Columns.Count;//得到列数
    
                    Range rng1 = ws.Cells.get_Range("C1", "C" + rowsint);  //rang
                    Range rng2 = ws.Cells.get_Range("D1", "D" + rowsint); //rang
                    Range rng3 = ws.Cells.get_Range("E1", "E" + rowsint); //rang 
                    Range rng4 = ws.Cells.get_Range("F1", "F" + rowsint); //rang
    
                    object[,] CallType = (object[,])rng1.Value2;
                    object[,] ActiveCall = (object[,])rng2.Value2;
                    object[,] PassivityCall = (object[,])rng3.Value2;
                    object[,] CallDate = (object[,])rng4.Value;
    
                    //通过模版读取
                    wkTemp = (WorkbookClass)excelApp.Workbooks.Open("D:\\Template.xls", objOpt, false, objOpt, objOpt, objOpt, true, objOpt, objOpt, true, objOpt, objOpt, objOpt, objOpt, objOpt);
                    wsTemp = (Worksheet)wkTemp.Worksheets.get_Item(1);
    
                    Range rngD = (Range)wsTemp.Columns["D", Type.Missing];//设置单元格格式
                    Range rngE = (Range)wsTemp.Columns["E", Type.Missing];//设置单元格格式
    
                    rngD.NumberFormat = "yyyy-mm-dd hh:mm:ss";
                    rngE.NumberFormat = "hh:mm:ss";
                    //通过模版写入信息excel文件
                    for (int i = 1; i < rowsint; i++)
                    {
                        wsTemp.Cells[i, 1] = CallType[i, 1].ToString();
                        wsTemp.Cells[i, 2] = ActiveCall[i, 1].ToString();  
                        wsTemp.Cells[i, 3] = PassivityCall[i, 1].ToString();
                        wsTemp.Cells[i, 4] = PassivityCall[i, 1].ToString();
                    }
                    wsTemp.SaveAs(saveFileName + "\\1.xls", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
                    excelApp.Workbooks.Close();//关闭打开的文档 否则学号会显示科学计数法。 
                    excelApp.Quit();
                }
            }
        }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)