Android实现仿excel数据表格效果

在没给大家分享代码之前,先给大家展示下效果图:

1.activity

/** * 采购需求 * Created by Administrator on 2016/10/13. */ public class PurchaseRequireActivity extends BaseActivity implements PurchaseRequireView { @Bind(R.id.appTitle) TextView appTitle; @Bind(R.id.scrollLinearLayout) LinearLayout titleLinearLayout; @Bind(R.id.scroll_list) ListView mListView; @Bind(R.id.item_scroll_title) CHTableScrollView headerScroll; public HorizontalScrollView mTouchView; private List<CHTableScrollView> mHScrollViews = new ArrayList<>();// 装入所有的 HScrollView private HashMap<String, TextView> mColumnControls = new HashMap<>(); private PPOrderRequirePresenter presenter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); try { setContentView(R.layout.activity_purchase_require); ButterKnife.bind(this); init();// 初始化 } catch (Exception e) { e.printStackTrace(); } } /** * 初始化 */ private void init() { presenter = new PPOrderRequirePresenter(this, this); presenter.GetToday(); } @OnClick({R.id.backRLot}) public void onClick(View view) { switch (view.getId()) { case R.id.backRLot: finish(); break; } } public void scrollTo_0_0() {// 全部列表滑动到开始位置 for (final CHTableScrollView hScrollView : mHScrollViews) { mListView.post(new Runnable() { @Override public void run() { //当listView刷新完成之后,把该条移动到最终位置 hScrollView.scrollTo(0, 0); } }); } } public void onScrollChanged(int l, int t) { for (CHTableScrollView scrollView : mHScrollViews) { if (mTouchView != scrollView) scrollView.smoothScrollTo(l, t);//防止重复滑动 } } public void onClickText(String str, int position) {// 点击的事件 System.out.println(str + "-" + position); } @Override public void refreshLV(List<PPOrderRequireMobModel> newList) { list.clear(); list.addAll(newList); } @Override public void initViews(String[] cols, List<Map<String, String>> datas) { // 全部列表滑动到开始位置 scrollTo_0_0(); // 清空所有的view titleLinearLayout.removeAllViews(); //Table Title for (int i = 0; i < cols.length; i++) { if (i != 0) { View linearLay = presenter.newView(PurchaseRequireActivity.this, R.layout.row_title_edit_view, cols[i]); TextView et = (TextView) linearLay.findViewById(R.id.tevEditView); if (cols[i].contains("-")) {// setTextColor if (cols[i].substring(cols[i].length() - 1, cols[i].length()).equals("2")) {// 2专柜:红色,1买断:黑色 et.setTextColor(Color.RED); } else { et.setTextColor(Color.DKGRAY); } } else { et.setTextColor(Color.DKGRAY); } et.setText(cols[i].substring(0, cols[i].length() - 2));//设置每一列顶表格数据 titleLinearLayout.addView(linearLay); } } // 添加头滑动事件,先清空列表 mHScrollViews.clear(); mHScrollViews.add(headerScroll); mListView.setDividerHeight(0);//设置分割线高度 mColumnControls.clear(); for (int i = 0; i < cols.length; i++) {// 门店名称+现金 or 门店名称+外欠 if (i != 0) {//预留第一列 EditText etItem1 = new EditText(PurchaseRequireActivity.this); etItem1.setWidth(50);// 设置宽度 etItem1.setTextColor(Color.DKGRAY); etItem1.setGravity(Gravity.CENTER); mColumnControls.put(cols[i], etItem1); } } BaseAdapter adapter = new PurchaseRequireAdapter(this, datas, R.layout.row_item_edit, cols, mColumnControls, mHScrollViews, mListView); mListView.setAdapter(adapter); } }

2.view

/** * 采购需求 * Created by Administrator on 2016/10/13. */ public interface PurchaseRequireView { void refreshLV(List<PPOrderRequireMobModel> newList); void initViews(String[] cols, List<Map<String, String>> datas); }

3.PPOrderRequirePresenter

/** * 采购需求 * Created by Administrator on 2016/10/13. */ public class PPOrderRequirePresenter { private PurchaseRequireView view; private Context context; public PPOrderRequirePresenter(Context context, PurchaseRequireView view) { this.context = context; this.view = view; } /** * 获取数据 */ public void GetToday() { String billDate = getStartBillDate();//FreshRoadUtil.getTodayDate_normal().substring(0, 10); int dimen = Integer.parseInt(getDimen());// 默认条件:日期=当天 、维度=按门店 String url = InterfaceNameUtil.PPOrderRequireGetRequire(billDate, dimen); Log.e("url", url); final SweetAlertDialog dialog = AppUtil.showLoading(context, "正在发送请求,请稍后..."); APIListTRequest<PPOrderRequireMobModel> request = new APIListTRequest<>( url, null, PPOrderRequireMobModel.class, new Response.Listener<List<PPOrderRequireMobModel>>() { @Override public void onResponse(List<PPOrderRequireMobModel> list) { if (list != null) {// && list.size() > 0 view.refreshLV(list); doSomethingFroList(list); view.refreshVerticalLV(getPNameFromDB(list));// 刷新一下导航条 } dialog.dismiss(); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { AppUtil.toError(dialog, error); } }); request.setAddTokenToHeader(false); VolleyUtil.start(context, request); } /** * 生成用于显示excel的数据源 * * @param newList newList */ public void doSomethingFroList(List<PPOrderRequireMobModel> newList) { ArrayList<String> nameList = new ArrayList<>();// 货物 ArrayList<Long> CargoIDList = new ArrayList<>();// 货物ID ArrayList<String> colsList = new ArrayList<>();// 门店名称-现金 or 门店名称-外欠 for (PPOrderRequireMobModel bean : newList) { String cargoName = bean.getCargoName(); if (bean.getCargoName().length() > 6) cargoName = cargoName.substring(0, 6); nameList.add(cargoName + "\n存:" + FreshRoadUtil.doubleTrans(bean.getQtyInventory()) + ",需:" + FreshRoadUtil.doubleTrans(bean.getQtyRequire())); CargoIDList.add(bean.getCargoID()); for (PPOrderRequireItemMobModel itemBean : bean.getItems()) { if (!isHave(colsList, itemBean.getName(), itemBean.getNatureType())) { colsList.add(itemBean.getName() + "-" + itemBean.getNatureType()); } } } // 排序,先1.买断、再2.专柜 Collections.sort(colsList, new Comparator<String>() { @Override public int compare(String left, String right) { return (left.substring(left.length() - 1, left.length())).compareTo(right.substring(right.length() - 1, right.length())); //return (right.substring(right.length() - 1, right.length())).compareTo(left.substring(left.length() - 1, left.length())); } }); colsList.add(0, "品名规格/店名");// excel控件的位于首位置的“提示”单元格文本 //Column String[] cols = colsList.toArray(new String[colsList.size()]); String[] name = nameList.toArray(new String[nameList.size()]); List<Map<String, String>> datas = new ArrayList<>(); Map<String, String> data; for (int i = 0; i < name.length; i++) { data = new HashMap<>(); data.put(cols[0], name[i]);//设置每一行头表格数据 for (int j = 1; j < cols.length; j++) { data.put(cols[j], getShowText(newList, CargoIDList.get(i), colsList.get(j))); } datas.add(data); } view.initViews(cols, datas); } /** * 列表中是否已经存在相应文本(外面 是 CargoID 是主键,里面是:Name+NatureType是唯一键) * * @param colsList colsList * @param name name * @param NatureType NatureType * @return 是否 */ public boolean isHave(ArrayList<String> colsList, String name, int NatureType) { for (String itemStr : colsList) { if (itemStr.equals(name + "-" + NatureType)) { return true; } } return false; } /** * 获取要显示的文本 * * @param list list * @param CargoID CargoID * @param name name * @return 显示的文本 */ public String getShowText(List<PPOrderRequireMobModel> list, long CargoID, String name) { for (PPOrderRequireMobModel bean : list) { for (PPOrderRequireItemMobModel itemBean : bean.getItems()) { if (bean.getCargoID() == CargoID && (itemBean.getName() + "-" + itemBean.getNatureType()).equals(name)) { return FreshRoadUtil.doubleTrans(itemBean.getQtyRequire()); } } } return " "; } /** * 新增一个view * * @param context context * @param res_id res_id * @param tag_name tag_name * @return view */ public View newView(Context context, int res_id, String tag_name) { View itemView = LayoutInflater.from(context).inflate(res_id, null); itemView.setTag(tag_name); return itemView; } }

4.PurchaseRequireAdapter

/** * 采购需求 * Created by Administrator on 2016/10/13. */ public class PurchaseRequireAdapter extends BaseAdapter { private List<? extends Map<String, ?>> datas; private int res; private String[] from; private Context context; protected List<CHTableScrollView> mHScrollViews = new ArrayList<>(); private HashMap<String, TextView> mColumnControls; private ListView mListView; public PurchaseRequireAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, HashMap<String, TextView> mColumnControls, List<CHTableScrollView> mHScrollViews, ListView mListView) { this.context = context; this.datas = data; this.res = resource; this.from = from; this.mColumnControls = mColumnControls; this.mHScrollViews = mHScrollViews; this.mListView = mListView; } @Override public int getCount() { return datas.size(); } @Override public Object getItem(int position) { return datas.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; if (v == null) { v = LayoutInflater.from(context).inflate(res, null); //第一次初始化的时候装进来 mColumnControls.put("title", (TextView) v.findViewById(R.id.item_title)); View chsv = v.findViewById(R.id.item_scroll); LinearLayout ll = (LinearLayout) chsv.findViewById(R.id.item_scroll_layout); View[] views = new View[from.length]; for (int i = 0; i < from.length; i++) { if (i == 0) { views[0] = v.findViewById(R.id.item_title); continue; } View linearLay = newView(context, R.layout.row_item_edit_view, from[i]); TextView td = (TextView) linearLay.findViewById(R.id.ievEditView); td.setTag(position); td.setOnClickListener(clickListener);// 文本的点击事件 ll.addView(linearLay); views[i] = td; } v.setTag(views); addHViews((CHTableScrollView) chsv); } View[] holders = (View[]) v.getTag(); int len = holders.length; for (int i = 0; i < len; i++) { if (i == 0) { String oldStr = this.datas.get(position).get(from[i]).toString();// 西瓜\n存:12,需:32 String cargoStr = oldStr.substring(0, oldStr.indexOf("\n"));// 西瓜 String numberStr_1 = oldStr.substring(oldStr.indexOf(":") + 1, oldStr.indexOf(","));// 12 String numberStr_2 = oldStr.substring(oldStr.lastIndexOf(":") + 1, oldStr.length());// 32 String sText = "<font color=\"#000000\">" + cargoStr + "</font>" + "<br>" + "<font color=\"#999999\">存:</font> " + "<font color=\"#000000\">" + numberStr_1 + "</font> " + "<font color=\"#999999\">,需:</font> " + "<font color=\"#000000\">" + numberStr_2 + "</font> "; ((TextView) holders[i]).setText(Html.fromHtml(sText)); } else { ((TextView) holders[i]).setText(this.datas.get(position).get(from[i]).toString()); //((TextView) holders[i]).setTextColor(Color.parseColor("#FFA500")); } } return v; } private View newView(Context context, int res_id, String tag_name) { View itemView = LayoutInflater.from(context).inflate(res_id, null); itemView.setTag(tag_name); return itemView; } public void addHViews(final CHTableScrollView hScrollView) { if (!mHScrollViews.isEmpty()) { int size = mHScrollViews.size(); CHTableScrollView scrollView = mHScrollViews.get(size - 1); final int scrollX = scrollView.getScrollX(); //第一次满屏后,向下滑动,有一条数据在开始时未加入 if (scrollX != 0) { mListView.post(new Runnable() { @Override public void run() { //当listView刷新完成之后,把该条移动到最终位置 hScrollView.scrollTo(scrollX, 0); } }); } } mHScrollViews.add(hScrollView); } // 点击的事件 private View.OnClickListener clickListener = new View.OnClickListener() { @Override public void onClick(View v) { ((PurchaseRequireActivity) context).onClickText(((TextView) v).getText().toString(), (int) v.getTag()); } }; }

5.CHTableScrollView

/** * excel 布局 * Created by Administrator on 2016/10/13. */ public class CHTableScrollView extends HorizontalScrollView { PurchaseRequireActivity activity; public CHTableScrollView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); activity = (PurchaseRequireActivity) context; } public CHTableScrollView(Context context, AttributeSet attrs) { super(context, attrs); activity = (PurchaseRequireActivity) context; } public CHTableScrollView(Context context) { super(context); activity = (PurchaseRequireActivity) context; } @Override public boolean onTouchEvent(MotionEvent ev) { //进行触摸赋值 activity.mTouchView = this; return super.onTouchEvent(ev); } @Override protected void onScrollChanged(int l, int t, int oldl, int oldt) { //当当前的CHScrollView被触摸时,滑动其它 if (activity.mTouchView == this) { activity.onScrollChanged(l, t); } else { super.onScrollChanged(l, t, oldl, oldt); } } }

6.activity_purchase_require

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FFFFFF" android:orientation="vertical"> <include layout="@layout/default_app_head3" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/bg_light_gray" android:baselineAligned="false" android:orientation="horizontal"> <RelativeLayout android:id="@+id/shop_mission_ll" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2"> <RelativeLayout android:id="@+id/shop_mission_delete_ll" android:layout_width="50dp" android:layout_height="35dp" android:layout_alignParentRight="true"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_marginRight="15dp" android:contentDescription="@string/app_name" android:src="@drawable/x_clear_icon" /> </RelativeLayout> <TextView android:id="@+id/shop_mission_search_tv" android:layout_width="match_parent" android:layout_height="35dp" android:layout_toLeftOf="@id/shop_mission_delete_ll" android:gravity="center" android:text="点击这里,设置查询条件" android:textColor="@color/black_text" android:textColorHint="@color/light_gray_text" android:textSize="@dimen/font_small" /> </RelativeLayout> <RelativeLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"> <TextView android:id="@+id/purchase_select_tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:singleLine="true" android:text="" android:textSize="12sp" /> <RelativeLayout android:id="@+id/purchase_tv_delete_ll" android:layout_width="45dp" android:layout_height="35dp" android:layout_alignParentRight="true"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_marginRight="15dp" android:contentDescription="@string/app_name" android:src="@drawable/x_clear_icon" /> </RelativeLayout> </RelativeLayout> </LinearLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:id="@+id/order_vertical_lv" android:layout_width="35dp" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:divider="@null" android:scrollbars="none" /> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_toLeftOf="@id/order_vertical_lv" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="fill_vertical" android:minHeight="40dip" android:orientation="horizontal"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="3" android:background="@drawable/bg_edittext_normal_s" android:enabled="false" android:gravity="center" android:maxLines="1" android:maxWidth="@dimen/scroll_tab_column_width" android:minWidth="@dimen/scroll_tab_column_width" android:singleLine="true" android:text="品名规格/店名" android:textColor="@android:color/black" android:textSize="12sp" /> <com.co_insight.freshroad.business.widget.CHTableScrollView android:id="@+id/item_scroll_title" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:scrollbars="none"> <LinearLayout android:id="@+id/scrollLinearLayout" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" /> </com.co_insight.freshroad.business.widget.CHTableScrollView> </LinearLayout> <ListView android:id="@+id/scroll_list" android:layout_width="match_parent" android:layout_height="match_parent" android:cacheColorHint="@android:color/transparent" android:scrollbars="none" /> </LinearLayout> <com.co_insight.freshroad.views.widgets.HorizontalListView android:id="@+id/shop_mission_item_hlv" android:layout_width="60dp" android:layout_height="40dp" android:layout_centerHorizontal="true" android:layout_marginTop="40dp" android:background="@drawable/fresh_road_bg_button_normal" android:visibility="gone" /> </RelativeLayout> </LinearLayout>

7.row_title_edit_view

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="@dimen/scroll_tab_column_width" android:layout_height="match_parent" android:minHeight="50dip" android:orientation="vertical"> <TextView android:id="@+id/tevEditView" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/bg_edittext_normal_title" android:editable="false" android:enabled="false" android:gravity="center" android:maxLines="2" android:maxWidth="@dimen/scroll_tab_column_width" android:minWidth="@dimen/scroll_tab_column_width" android:paddingLeft="3dp" android:paddingRight="3dp" android:textColor="@android:color/black" android:textSize="12sp" /> </LinearLayout> 8.row_item_edit_view [html] view plain copy 在CODE上查看代码片派生到我的代码片 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="@dimen/scroll_tab_column_width" android:layout_height="match_parent" android:minHeight="50dip" android:orientation="vertical"> <TextView android:id="@+id/ievEditView" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/bg_edittext" android:gravity="center" android:maxLines="2" android:maxWidth="@dimen/scroll_tab_column_width" android:minWidth="@dimen/scroll_tab_column_width" android:textSize="12sp" android:textColor="@android:color/black" /> </LinearLayout>

9.row_item_edit

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="20dp" android:maxHeight="20dp" android:minHeight="20dp" android:orientation="horizontal"> <TextView android:id="@+id/item_title" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="3" android:background="@drawable/bg_edittext_normal_s" android:enabled="false" android:gravity="center" android:maxLines="2" android:maxWidth="@dimen/scroll_tab_column_width" android:minWidth="@dimen/scroll_tab_column_width" android:text="测试" android:textColor="@android:color/black" android:textSize="12sp" /> <com.co_insight.freshroad.business.widget.CHTableScrollView android:id="@+id/item_scroll" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:scrollbars="none"> <LinearLayout android:id="@+id/item_scroll_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" /> </com.co_insight.freshroad.business.widget.CHTableScrollView> </LinearLayout>

10.bg_edittext

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/bg_edittext_normal" android:state_window_focused="false"/> <item android:drawable="@drawable/bg_edittext_focused" android:state_focused="true"/> </selector> 11.bg_edittext_focused [html] view plain copy 在CODE上查看代码片派生到我的代码片 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <solid android:color="#FFFFFF" /> <corners android:radius="0dip" /> <stroke android:width="0.1dp" android:color="@color/nav_selected" /> </shape>

12.bg_edittext_normal

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <solid android:color="#FFFFFF" /> <corners android:radius="0dip" /> <stroke android:width="0.1dp" android:color="@color/nav_selected" /> </shape>

13.bg_edittext_normal_title

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <!--北京填充色--> <solid android:color="#00FFFFFF" /> <!--角的度数--> <corners android:radius="0dip" /> <!-- 边框 --> <stroke android:width="0.1dp" android:color="@color/nav_selected" />

14.PPOrderRequireMobModel

package com.co_insight.freshroad.business.bean; import java.util.ArrayList; import java.util.List; /** * 采购需求 * Created by Administrator on 2016/10/13. */ public class PPOrderRequireMobModel { private long CargoID;// 货物ID private String CargoName;// 货物名称 private long UnitID;// 单位ID private String UnitName;// 单位 private long PNameID;// 小类 private long CategoryID;// 品名属性ID private String CategoryName;// 品名属性 private double QtyRequire;// 需求量 private double QtyInventory;// 库存量 private long ID; private String CreateDate; private String UpdateDate; private List<PPOrderRequireItemMobModel> Items = new ArrayList<>();// 需求明细 public long getCargoID() { return CargoID; } public void setCargoID(long CargoID) { this.CargoID = CargoID; } public String getCargoName() { return CargoName; } public void setCargoName(String CargoName) { this.CargoName = CargoName; } public long getUnitID() { return UnitID; } public void setUnitID(long UnitID) { this.UnitID = UnitID; } public String getUnitName() { return UnitName; } public void setUnitName(String UnitName) { this.UnitName = UnitName; } public long getPNameID() { return PNameID; } public void setPNameID(long PNameID) { this.PNameID = PNameID; } public long getCategoryID() { return CategoryID; } public void setCategoryID(long CategoryID) { this.CategoryID = CategoryID; } public String getCategoryName() { return CategoryName; } public void setCategoryName(String CategoryName) { this.CategoryName = CategoryName; } public double getQtyRequire() { return QtyRequire; } public void setQtyRequire(double QtyRequire) { this.QtyRequire = QtyRequire; } public double getQtyInventory() { return QtyInventory; } public void setQtyInventory(double QtyInventory) { this.QtyInventory = QtyInventory; } public long getID() { return ID; } public void setID(long ID) { this.ID = ID; } public String getCreateDate() { return CreateDate; } public void setCreateDate(String CreateDate) { this.CreateDate = CreateDate; } public String getUpdateDate() { return UpdateDate; } public void setUpdateDate(String UpdateDate) { this.UpdateDate = UpdateDate; } public List<PPOrderRequireItemMobModel> getItems() { return Items; } public void setItems(List<PPOrderRequireItemMobModel> items) { Items = items; } }

好了,代码到此结束。如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

时间: 2024-09-27 10:51:51

Android实现仿excel数据表格效果的相关文章

Android实现仿excel数据表格效果_Android

在没给大家分享代码之前,先给大家展示下效果图: 1.activity /** * 采购需求 * Created by Administrator on 2016/10/13. */ public class PurchaseRequireActivity extends BaseActivity implements PurchaseRequireView { @Bind(R.id.appTitle) TextView appTitle; @Bind(R.id.scrollLinearLayou

在word2007中插入Excel数据表格的方法

第1步,打开word2007文档,在"插入"功能区的"表格"分组中单击"表格"按钮,并在打开的菜单中选择"excel电子表格"命令,如图一所示. 图一 点击"表格"按钮 第2步,在word2007文档中插入空白excel电子表格以后,即可在excel电子表格中进入数据录入.数据计算等数据处理工作,其功能与操作方法跟在excel中操作完全相同,如图二所示. 图二 在word2007文档中插入excel数据表格

设置Excel数据表格的阴影间隔效果

在包含大量数据的表格中,我们常常使用阴影间隔来提高显示效果,但是一行一行地设置背景颜色可是件麻烦事.下面告诉大家两个好方法. 方法一:假使您的数据区域为A2到C100,先将A3到C3的背景修改为浅灰色,然后选中A2到C3区域,执行"编辑"菜单中"复制"命令,再选中A4到C100区域,执行"编辑"菜单中"选择性粘贴"命令,选择"格式",按"确定"按钮退出.这样就得到了间隔阴影的数据表了.或

Word2007嵌入或链接Excel数据表格

  ①先启动Excel,将要进行处理的工作表打开. ②按下Ctrl+A键全选,然后复制. ③启动Word2007,光标定位到要显示文本的地方,右击,粘贴,将表格数据粘贴进来. ④这时拖动滚动条移至最下方,会有一个粘贴选项,点击它,勾选匹配目标区域表格样式并链接到Excel

看今朝:Excel数据表格中的分分合合

<三国演义>开宗明义的第一句话就是"天下大势,分久必合,合久必分",这句带有辩证思想的名 言揭示了世间万物在不断变化的规律.作为Office中人,经常需要处理一些分分合合的数据,若没有几下 高招,有人恐怕一个回合就要缴械投降. 一.数据的拆分与提取 学员小刘是一名业绩非常出色的销售经理,他在记录客户的通讯地址和邮政编码时,将它们放在了一 个单元格中(如图1),到了年底想利用Word中的"邮件合并"功能给每位客户发送贺卡邮件时,看着三 四千条客户信息,才发

怎么在Word中插入Excel数据表格4种方法

方法1.直接粘贴 我们在excel中选中要放到word中的文档excel内容,然后ctrl+c进行复制,再在word文档中我们再ctrl+v 粘贴 就完成了. 方法2.我们先在word中点击菜单上的"插入"--"对象"--"由文件创建"--"浏览"选择中好excel表格就可以插入了.             方法3.同样是在word中我们点击菜单上的"插入"--"对象"--"新

循序渐进开发WinForm项目(5)--Excel数据的导入导出操作

随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我们每天面对的太多东西了,觉得很多都稀松平常了,即使很细微的地方,可能我们都已经形成习惯了.反过来,如果我们切换到其他领域,如IOS.android,那么开始我们可能对里面很多设计的规则不甚了解,开始可能也是一头雾水. 本篇继续上一篇<循序渐进开发WinForm项目(4)--Winform界面模块的集

Android开发仿QQ空间根据位置弹出PopupWindow显示更多操作效果_Android

我们打开QQ空间的时候有个箭头按钮点击之后弹出PopupWindow会根据位置的变化显示在箭头的上方还是下方,比普通的PopupWindow弹在屏幕中间显示好看的多. 先看QQ空间效果图: 这个要实现这个效果可以分几步进行 1.第一步自定义PopupWindow,实现如图的样式,这个继承PopupWindow自定义布局很容易实现 2.得到点击按钮的位置,根据位置是否在屏幕的中间的上方还是下方,将PopupWindow显示在控件的上方或者下方 3.适配问题,因为PopupWindow上面的操作列表

Android 高仿微信朋友圈动态支持双击手势放大并滑动查看图片效果

最近参与了开发一款旅行APP,其中包含实时聊天和动态评论功能,终于耗时几个月几个伙伴完成了,今天就小结一下至于实时聊天功能如果用户不多的情况可以scoket实现,如果用户万级就可以采用开源的smack + opnefile实现,也可以用mina开源+XMMP,至于怎么搭建和实现,估计目前github上一搜一大把,至于即时通讯怕误人子弟,暂且不做介绍,现就把实现的一个微信朋友圈的小功能介绍一下. 先上效果图: 一拿到主流的UI需求,大致分析下,需要我ListView嵌套Gridview,而grid