wafuの技術

技術習得の努力メモです。

RubyでExcel 罫線

罫線に成功です。

 

# -*- Encoding:UTF-8 -*-ire 'win32ole'
require 'win32ole'

class Excel
end

excel = WIN32OLE.new('Excel.Application')
WIN32OLE.const_load(excel, Excel)

# 新規ブックを作成
book = excel.workbooks.add

#画面に状況を表示させる。
excel.visible = true

#シートにワークシートの1を指定
sheet = book.Worksheets(1)

 

#罫線の範囲
range = sheet.range("F11:G16")

 

#線の種類
range.borders.lineStyle = Excel::XlContinuous

 

他にも、線の場所とか太さは、また

RubyでExcel

RubyでのExcel操作です。

コメントを適当に変えて使います。

 

# -*- Encoding:UTF-8 -*-
require 'win32ole'

excel = WIN32OLE.new('Excel.Application')

#Excelファイルをダイアログで開く場合
#book_file = excel.GetOpenFilename
#book = excel.WorkBooks.Open(book_file)

#ファイル名指定で開く場合1(COM使用)
#fso = WIN32OLE.new('Scripting.FileSystemObject')
#filename = fso.GetAbsolutePathName("test.xlsx")
#book = excel.WorkBooks.Open(filename)

#ファイル名指定で開く場合2
#book = excel.workbooks.open 'sample.xlsx'

# 新規ブックを作成
book = excel.workbooks.add

#画面に状況を表示させる。
excel.visible = true

#シートにワークシートの1を指定
sheet = book.Worksheets(1)

#セルの値を取得(縦、横)
#s = sheet.Cells.Item(3,3).value
#セルに値を格納(縦、横)
sheet.Cells.Item(3,3).value = 1000

#名前を付けて保存する
#book.saveAs 'e:\test.xlsx'

#Excelブックを閉じる
#true:上書き false:上書きしない
book.close(true)

#Excel終了
excel.quit

C++でlibharu 罫線にチャレンジ

libharuでの罫線は、難しいです。

考え方としては、始点から終点までの線を引く。

最後の終点が次の始点となるの繰り返しです。

 

LineTo以外の使い方も知りたいのですが・・・

 

    //罫線
    HPDF_Page_MoveTo (page, x, y);
    HPDF_Page_LineTo (page, x + 510, y);
    HPDF_Page_LineTo (page, x + 510, y + 100);
    HPDF_Page_LineTo (page, x, y + 100);
    HPDF_Page_LineTo (page, x , y);
    HPDF_Page_Stroke (page);

 

絵がなくて、すみません。

細かいブログをいつか、まとめたいです。

C++でlibharu UTF-8とか

UTF-8での作成に成功しましたが、難しいですね。

 

Ruby+Prawnならもっと簡単にできるのですが  

■フォントとUTF-8の指定です。

 wcscat(FontPath,L"\\Fonts\\ARIALUNI.ttf");
 HPDF_UseUTFEncodings(pdf);
 const char *fontname;
 fontname = HPDF_LoadTTFontFromFile(pdf, FontPath, HPDF_TRUE);
 font = HPDF_GetFont(pdf, fontname, "UTF-8");
 HPDF_SetCurrentEncoder(pdf, "UTF-8");

■テキストの出力

wchar_t wtext[] = L"テキストです。";
char text[2048];
WideCharToMultiByte(CP_UTF8,NULL,wtext,-1,text,2048,NULL,NULL);
HPDF_Page_TextRect (page, 50, 800, 580, 770,text, HPDF_TALIGN_CENTER, NULL);

HPDF_Page_EndText (page);

 

■文字サイズの指定

HPDF_Page_SetFontAndSize (page, font, 10);

C++でlibharu HPDF_Page_TextRect

libharuを使用したPDFの作成ができるようになってきています。

 

便利です。

いずれ、使い方を載せたいと思います。

 

残念なことに、ずいぶん戦うことになりました。

 

HPDF_Page_TextRect()は、折り返しが成功しませんでした。

折り返すには、スペースが必要らしいです。

demoでは、成功しているので原因判明にずいぶん時間が必要となりました。

 

参考

http://sourceforge.net/p/libharu/discussion/283687/thread/0cc7e6b7/

 

C++でlibharu(3)UTF8成功

UTF8成功しました。

 

変更点は、

Makefile.msvcファイルに

src\hpdf_encoder_utf.obj

を追加して、作成しました。

 

使い方とテストです。

 

場所を忘れました。このキーワードでlibharu/YzXoH_K3OAI

 

ここに書いてあるパッチは既に追加されていたので、

utf8test.cとフォントファイルをダウンロードして、

コンパイルしました。

 

ポイントは保存するときに、「UTF8」の「BOMなし」です。

 

これで、PDFを自由に扱うことができます。\(^o^)/

C++でlibharu(2)UTF8に挑戦中

時代はUNICODEです。

libharuでも、対応していると信じて挑戦します。

 

libharuのページにも記載している。

HPDF_UseUTFEncodings

がないとか表示されます。

 

変にUTF-8を入れると、エラーに・・・orz

 

とりあえず、原因を探します。

 

HPDF_UseUTFEncodings関数は、ありました。

hpdf_encoder_utf.c

 

ここで、気づきます。

このソースがMakefileに記載されていません。

Makefile.msvc

に追加します。

 

とりあえず、makeはできました。

 

使用方法は、これからです。