2014年7月1日星期二

基于.NET的Excel开发:单元格区域的操作(读取、赋值、边框和格式) - M守护神

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
基于.NET的Excel开发:单元格区域的操作(读取、赋值、边框和格式) - M守护神  阅读原文»

  • 引用
using Excel = Microsoft.Office.Interop.Excel;

  • 定义
1 Excel.ApplicationClass app;
2 Excel.Workbooks books;
3 Excel.Workbook book;
4 Excel.Sheets sheets;
5 Excel.Worksheet sheet;
6 Excel.Range m_objRange;
7 object missing = System.Reflection.Missing.Value;

  • 读取有效单元格区域
1 foreach (Excel.Worksheet sheet in book.Sheets)
2 {
3 for (int i = 1; i <= sheet.UsedRange.Cells.Rows.Count; i++)
4 {
5 for (int j = 1; j <= sheet.UsedRange.Cells.Columns.Count; j++)
6 {
7 Excel.Range m_objRange = (Excel.Range)sheet.Cells;
8 }
9 }
10 }

  • 单元格区域赋值
1 m_objRange = sheet .get_Range("A1",missing );
2 m_objRange.set_Value(missing , "单元格的值");

  • 单元格区域设置Excel公式
1 m_objRange = sheet .get_Range("A1", missing );
2 m_objRange.set_Value(missing , "=SUM(A2:A5)");

  • 字体加粗
1 m_objRange.Font.Bold = true;

  • 设置数字格式
1 //保留2位小数
2 m_objRange.NumberFormat = "0.00";

  • 设置边框
1 m_objRange = sheet .get_Range("A1", "B2");
2 //设置边框粗细
3 m_objRange.Borders.Weight = 2;
4 //设置边框样式
5 m_objRange.Borders.get_Item(Excel.XlBordersIndex.xlEdgeTop).LineStyle = Excel.XlLineStyle.xlDouble;

  • XlLineStyle枚举
xlContinuous :实线。
xlDash :虚线。
xlDashDot:点划相间线。
xlDashDotDot:划线后跟两个点。
xlDot :点线。
xlDouble:双线。
xlLineStyleNone:无线条。
xlSlantDashDot :倾斜的划线。
  • XlBordersIndex枚举
xlDiagonalDown:对角线,从左上角到右下角。
xlDiagonalUp:对角线,从左上角到右下角。
xlEdgeBottom:底部边框。
xlEdgeLeft:左部边框。
xlEdgeRight:右部边框。
xlEdgeTop:顶部边框。
xlInsideHorizontal:内部水平边框。
xlInsideVertical Vertical:内部垂直边框。


本文链接:基于.NET的Excel开发:单元格区域的操作(读取、赋值、边框和格式),转载请注明。

ajax长轮询实现即时聊天室 - JulianJiang  阅读原文»

前段js:

//处理ajax长轮询
$(function(){
ask_order();
function ask_order(){
var ask_action = "{:U('index/order_commet',array('time'=>10,'desk_id'=>$desk_id))}";
$.ajax({
type:"GET",
dataType:"json",
url:ask_action,
timeout:80000, //ajax请求超时时间80秒
success:function(data,textStatus){
//从服务器得到数据,显示数据并继续查询
if(data.status=="1"){
//alert(data.data);
var html_str = "";
var result = data.data;
$(result).each(function(i) {
html_str += '<li>'+result.goods_name+' <a data-order="'+result.order_id+'" data-product="'+result.goods_name+'" class="little_delete" href="javascript:;">删除</a></li>'
});
$('.product_ordered').html(html_str);
}
//未从服务器得到数据,继续查询
if(data.status=="0"){
console.log('没有数据');
}
setTimeout(ask_order, 5000);//5000毫秒,自己定义延迟时间
} ,
//Ajax请求超时,继续查询
error:function(){
setTimeout(ask_order, 5000);//5000毫秒,自己定义延迟时间
}

});
}
})

后台PHP:

//处理长轮训方法。
public function order_commet(){
if(empty($_GET['time'])){
die();
}
set_time_limit(0);
$limit_time = $_GET['time'];
$desk_id = $this->desk_id;
$i = 0;
while (TRUE) {
usleep(500000);
$i++;
$result = $this->order_mod->get_order_by_desk($desk_id);
if($result['result'] == 1){
$this->ajaxReturn(array('status'=>1,'data'=>$result['data']));
die();
}
if($i == $limit_time || !$desk_id){
$this->ajaxReturn(array('status'=>0,'data'=>'无数据'));
die();
}
}
}


本文链接:ajax长轮询实现即时聊天室,转载请注明。

阅读更多内容

没有评论:

发表评论