免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2342 | 回复: 7
打印 上一主题 下一主题

【求助】上次发帖居然写错了,我想往excel单元格里写中文,如何用perl实现啊?? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-01 10:59 |只看该作者 |倒序浏览
哪位牛人能帮我解决这个困惑啊,已经弄了好几天了,到现在也不知道怎么弄。。。
上网也去查了,关于这方面的例子查到的不多,所以到论坛里来请教诸位了,谢谢了!!!!
我是新手,现在没有积分,等有了几分一定给你。

论坛徽章:
0
2 [报告]
发表于 2009-04-01 11:06 |只看该作者
excel我不清楚 openoffice的sxc表格我倒知道

for example

#!/usr/bin/perl

use strict;
use warnings;
use OpenOffice::OOCBuilder;

# - start sxc document
my $sheet=new OpenOffice::OOCBuilder();

# - Set Meta.xml data
$sheet->set_title ('Test document for OOCBuilder');
$sheet->set_author ('Stefan Loones');
$sheet->set_subject ('How to use OOCBuilder & parent class OOBuilder');
$sheet->set_comments ('Fill in your comments here');
$sheet->set_keywords ('openoffice autogeneration', 'OpenOffice::OOBuilder');
$sheet->push_keywords ('OpenOffice::OOCBuilder');
$sheet->set_meta (1, 'name 1', 'value 1');

# - Set name of first sheet
$sheet->set_sheet_name ('MySheet_1',1);
# - Set some data
# columns can be in numbers or letters
$sheet->set_data_xy (1, 1, '你好');
$sheet->set_data_xy ('C', 2, 'cell C2');
$sheet->goto_cell ('F8');
$sheet->set_data ('cell F8');

# numerique values
$sheet->set_data_xy ('D', 1, 12.25, 'float');
$sheet->set_data_xy ('D', 2, 9.13, 'float');

# formula and style blue & bold
$sheet->set_bold (1);
$sheet->set_txtcolor('blue');
$sheet->set_data_xy ('D', 3, '=SUM(D12)', 'formula');

# - reset style
$sheet->set_bold (0);
$sheet->set_txtcolor('black');

# - go down 5 rows
$sheet->move_cell ('down', 5);
$sheet->set_data ('5 rows down');

# - add another sheet, select it, name it, and put data in it
$sheet->add_sheet;
$sheet->goto_sheet (2);
$sheet->set_sheet_name ('MySheet_2');
$sheet->set_italic (1);
$sheet->set_data_xy (1, 1, 'sheet 2 cell A1');
$sheet->set_italic (0);

$sheet->generate ('example1');
print "example1.sxc generated\n";
exit;

论坛徽章:
0
3 [报告]
发表于 2009-04-01 13:16 |只看该作者
我记得只要转成unicode就可以了吧?

论坛徽章:
0
4 [报告]
发表于 2009-04-01 14:52 |只看该作者
我编了一段代码,想手动往excel的单元格里写入中文,但是打开excel以后,里面显示的是两个小格子。
#!/usr/local/perl5/bin/perl
use Spreadsheet::WriteExcel;
use Unicode::Map;
my $Map=new Unicode::Map("GB2312");
my $name="中文";
my $workbook=Spreadsheet::WriteExcel->new("AAAAA.xls");
my $worksheet=$workbook->add_worksheet();
$worksheet->write_unicode(2,2,$Map->to_unicode($name));

三楼的哥们,你帮我看看这段代码有问题吗?我现在是在linux环境下工作的。

论坛徽章:
0
5 [报告]
发表于 2009-04-01 15:03 |只看该作者
也谢谢二楼的哥们了!!!刚才给忘了....

论坛徽章:
0
6 [报告]
发表于 2009-04-01 15:43 |只看该作者

论坛徽章:
0
7 [报告]
发表于 2009-04-01 16:16 |只看该作者
刚才才发现,我刚才贴出来的那段代码运行的结果,在linux的环境下查看excel,里面显示的就是乱码;
当我把这个excel复制到windows下查看的时候能显示中文。
我现在想解决的问题是把一个页面上的数据(中英文都有)另存为一个excel表,当前页面的数据是从MySQL里面导出来的。页面上能正常显示中英文,但是我的excel(linux环境)却是乱码,我把这个表格弄到windows下面还是乱码,这个问题应该不是数据库里边数据的问题吧?
谢谢楼上的兄弟了,我上网查到的关于perl和excel的例子也是那个,你有没有搜到别的例子啊??

论坛徽章:
0
8 [报告]
发表于 2009-04-07 16:10 |只看该作者
其实理解了perl unicode 工作机制,还是很好理解的。
搞清楚:
操作系统的编码方式,perl的编码方式, 数据库的编码方式。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP